比如有一个FORM,上面有一个label,怎么才能做到用鼠标单击那个label,然后label就跟随鼠标的的移动而移动(在FORM范围内),然后再次单击,label就停止跟随,就好像用鼠标拿起label然后放在另外一个地方那样,该如何实现这样的效果呢.

解决方案 »

  1.   

    Label的Click事件中,设置一个标志(反复翻转),表明开始移动/结束移动,开始移动时记录当前鼠标坐标。
    Label的MouseMove事件中,判断如果标志被设置,则计算鼠标移动量,将Label相应移动。Form的MouseMove事件中,要做类似处理。
      

  2.   


    给你 段简单的代码public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            bool bMove = false;
            private void label1_Click(object sender, EventArgs e)
            {
                bMove = !bMove;
            }        private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                if (bMove)
                {
                    label1.Location = new Point(e.X, e.Y);
                }
            }
        }