为什么这样拖不动窗口
该窗口有一个panel,想通过它来拖动窗口,代码如下,就是拖不动,不知道是什么原因
private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button==MouseButtons.Left)
{
dragging=true;
mousex =-e.X;
mousey =-e.Y;
int clipleft=this.PointToClient(MousePosition).X-panel1.Location.X;
int cliptop =this.PointToClient(MousePosition).Y-panel1.Location.Y;
int clipwidth=this.ClientSize.Width-(panel1.Width-clipleft);
int clipheight=this.ClientSize.Height-(panel1.Height-cliptop);
Cursor.Clip=this.RectangleToScreen(new Rectangle(clipleft,cliptop,clipwidth,clipheight));
panel1.Invalidate();
}
}
private void panel1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(dragging)
{
//移动控件到新的位置
Point MPosition;
MPosition=this.PointToClient(MousePosition);
MPosition.Offset(mousex, mousey);
//确实控件不能离开主窗口
panel1.Location=MPosition;
}
}
private void panel1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(dragging)
{
dragging=false;
//结束拖动
Cursor.Clip=System.Drawing.Rectangle.Empty;
panel1.Invalidate();
}
}