先贴上代码
private bool isMouseDown = false;
private Point mouseOffset; //记录鼠标指针的坐标
private void PicBox_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOffset.X = e.X;
mouseOffset.Y = e.Y;
isMouseDown = true;
}
}
private void PicBox_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown)
{
int left = PicBox.Left + e.X - mouseOffset.X;
int top = PicBox.Top + e.Y - mouseOffset.Y;
PicBox.Location = new Point(left,top);
}
}
private void PicBox_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
事件中的 MouseEventArgs e :
根据e得到的坐标,不是鼠标相对与Form左上角的坐标,而是相对于图片框的左上角坐标,所以算鼠标偏移量的时候,只要计算两次事件对象e中的坐标的差值!
保存鼠标按下时相对于图片框左上角的坐标
mouseOffset.X = e.X;
mouseOffset.Y = e.Y;
移动时得到偏移量
e.X - mouseOffset.X;
e.Y - mouseOffset.Y;
算出图片框的新位置
int left = PicBox.Left + e.X - mouseOffset.X;
int top = PicBox.Top + e.Y - mouseOffset.Y;
本文转自 ☆★ 包罗万象网 ★☆ - http://www.baoluowanxiang.com 转载请注明出处,侵权必究!
原文链接:http://www.baoluowanxiang.com/a/program/csharp/2010/0528/905.html
分享到:
相关推荐
C#chart控件游标CursorX跟随鼠标移动的例子。
C#编写脚本,用以实现在Unity中的物体跟随鼠标移动,旋转,缩放的功能,代码注释清晰,便于理解,已经过测试运行
jquery实现缩略图边框跟随鼠标移动特效.rar
小功能,鼠标跟随十字坐标显示,酷炫的加分小展示, 当鼠标在页面移动时,有一个显示鼠标位置的十字架跟随鼠标移动而移动,十字架适应屏幕全部
C#双缓存实现半透明缩略图跟随鼠标移动效果,demo有助于了解winform双缓存实现方法,可以在此基础上实现控件拖拽功能
物体跟随鼠标移动 两种方法 Unity3d c# 资源脚本
实现类似拖拽效果: 1、按键按下新建窗体 2、新建窗体随鼠标移动 3、松开鼠标取消移动
在图形中,随着鼠标的移动显示十字交叉线,VC++
Unity 拖动相机跟随鼠标(手指)移动(例如移动小地图)
图片跟随鼠标的移动而移动的动态效果,点击确认后将图片定位,主要用定时器定时读取鼠标坐标并动态现实图片
设置一张图片,可以让图片跟随鼠标随时移动。
通过C#、WPF实现系统桌面跟随鼠标的全屏半透明十字光标特效,可用于辅助定位光标。具体实现方式为使用Canvas进行绘图,并实时响应鼠标的移动事件进行跟随。运行时会将鼠标指针临时修改为本人自己绘制的光标,关闭后...
用c#编写的示例程序,可以单击或双击后拖动控件到窗体任何位置,鼠标移动到控件边沿可以改变光标形状,按下鼠标左键后拖动可以改变控件大小,改变主窗体大小控件大小跟随改变
用PANEL控件实现窗体拖拽功能,鼠标移动PANEL控件中,按住击鼠标左键,窗体跟随鼠标移动
通过鼠标点击完成画线,是GIS初学者必须掌握的技能。
VisualStudio2008中,实现鼠标动态追踪功能,左击后鼠标右侧会出现文字,会跟随鼠标一起移动的算法C#源代码程序
jquery实现人物头像跟随鼠标转动效果.rar
C#实现运行时调整控件大小和位置,可以单击拖动控件到窗体任何位置,鼠标移动到控件边沿可以改变光标形状,按下鼠标左键后拖动可以改变控件大小,改变主窗体大小控件大小跟随
复制屏幕上某个矩形范围内的图像到新画布上,鼠标在窗体上时 绘制一个跟随鼠标移动的方框
项目新增ProCamera2D插件实现相机跟随效果。由于ProCamera2D的实现效果与Cinemachine效果完全相同,在运行时并未提供选择相机的选项。读者可更改`GameStartWindow`脚本中的`EnterNextScene`方法,通过调`用...