在 MouseDown 事件,或别的鼠标事件中,事件类型 MouseEventArgs 参数 e 传进来的 X,Y 值是鼠标相对所在控件中的坐标值。
控件的 Location 属性用 Point(int x,int y) 结构指定,是控件的 Left 、Top 值的另一种表示。
private int x, y, x1, y1;
private bool BeginDraged = false;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
x = e.X; y = e.Y; //标记鼠标在控件里的坐标
if (BeginDraged) BeginDraged = false; else BeginDraged = true; //转换鼠标被按下的状态
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (BeginDraged)
{
x1 = pictureBox1.Left + e.X - x; //当鼠标被按下的时候
y1 = pictureBox1.Top + e.Y - y; //标记控件的位置为控件当前的位置-鼠标在空间里的坐标+鼠标移动的距离
pictureBox1.Location = new Point(x1, y1);//使控件跟随光标移动
}
}

本文介绍如何在C#程序中实现控件跟随鼠标移动。通过处理MouseDown和MouseMove事件,记录鼠标按下时的相对位置,并在鼠标移动时更新控件的位置,从而达到控件随光标移动的效果。
最低0.47元/天 解锁文章
155

被折叠的 条评论
为什么被折叠?



