我有个Panel容器,在Panel容器里放了几个Label控件,运行后想随意拖动Label,只能在Panel里拖动,我写的程序虽然可以拖动,但是可以拖到panel容器外,请大家给指点下,最好是给一小段程序的例子,谢谢大家,我是新手,请大家理解

解决方案 »

  1.   

    判断panel在窗体的position,如果panel.position.x+panel.width>Label.position.x>panel.position.x;name不可拖动,Y值类似,LZ试试呢。或者转化成rectangle,判断是否contain就行了
      

  2.   

    发你代码到[email protected],既然你的拖动都写好了,我可以帮你瞧瞧不越界的原因。
      

  3.   

    这是label的代码,label在panel里放着 //种次号MouseDown
            private void labzch_MouseDown(object sender, MouseEventArgs e)
            {
                MoveFlag = true;//已经按下.
                xPos = e.X;//当前x坐标.
                yPos = e.Y;//当前y坐标.        }
            //种次号MouseUp
            private void labzch_MouseUp(object sender, MouseEventArgs e)
            {
                MoveFlag = false;
            }
            //种次号MouseMove
            private void labzch_MouseMove(object sender, MouseEventArgs e)
            {
                if (MoveFlag)
                {
                   
                        labzch.Left += Convert.ToInt16(e.X - xPos);//设置x坐标.
             
                  
                        labzch.Top += Convert.ToInt16(e.Y - yPos);//设置y坐标.
                    
                }
            }