为什么这样拖不动窗口

welcomgoodies welcomgoodies 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
该窗口有一个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();
}
}
...全文
评论 4
收藏 已收藏
分享
返回顶部
welcomgoodies
C# 111,129 成员 642,539 内容