在C#程序中使控件跟随光标移动

      在 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);//使控件跟随光标移动
            } 

         }  

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页