/// <summary>
        /// 定义二维平面的XY
        /// </summary>
        private Point MouseXY;        private void lblP_MouseDown(object sender, MouseEventArgs e)
        {
            MouseXY = new Point(-e.X,-e.Y);
            MessageBox.Show(-e.X+"|********|"+-e.Y);
        }        private void lblP_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Point p = Control.MousePosition;
                p.Offset(MouseXY.X,MouseXY.Y);
                if (lblP.Location.Y==-10)
                {
                    Buttons1.Location = this.PointToClient(p);   
                }                
            }
        }求教:怎样才能限制该控件的上下移动呢?只要求能左右移动即可,我在线等……谢谢

解决方案 »

  1.   

    C# 运行时移动控件参考
    http://blog.csdn.net/dz45693/archive/2010/03/17/5389145.aspx
      

  2.   

    当鼠标按下时记录控件的X轴,然后在移动事件里把 -e.X 改成 刚刚记录的X轴 就可以了
      

  3.   

    记录top值,在移动过程中,如果发现新的top不等于记录的top值,则置为记录的top值
      

  4.   


    当鼠标按下时记录控件的X轴,然后在移动事件里把 MouseXY.X 改成 刚刚记录的X轴 就可以了看错了
      

  5.   


    label1.Location = new Point(this.PointToClient(p).X, label1.Location.Y);