欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > C#无标题栏窗体拖动

C#无标题栏窗体拖动

2024/12/1 0:43:10 来源:https://blog.csdn.net/lexiaowu/article/details/142148261  浏览:    关键词:C#无标题栏窗体拖动

要实现C#无标题栏窗体的拖动功能,可以通过以下步骤实现:

  1. 在窗体的构造函数中添加以下代码,以去掉标题栏:
this.FormBorderStyle = FormBorderStyle.None;
  1. 然后,添加以下代码以处理鼠标按下事件:
private const int WM_NCHITTEST = 0x0084;
private const int HT_CAPTION = 0x0002;protected override void WndProc(ref Message m)
{switch (m.Msg){case WM_NCHITTEST:base.WndProc(ref m);if ((int)m.Result == HT_CLIENT)m.Result = (IntPtr)HT_CAPTION;return;}base.WndProc(ref m);
}
  1. 最后,通过处理鼠标按下和移动事件来实现拖动功能:
private bool isDragging = false;
private Point lastCursor;
private Point lastForm;private void Form1_MouseDown(object sender, MouseEventArgs e)
{isDragging = true;lastCursor = Cursor.Position;lastForm = this.Location;
}private void Form1_MouseMove(object sender, MouseEventArgs e)
{if (isDragging){int x = lastForm.X - (lastCursor.X - Cursor.Position.X);int y = lastForm.Y - (lastCursor.Y - Cursor.Position.Y);this.Location = new Point(x, y);}
}private void Form1_MouseUp(object sender, MouseEventArgs e)
{isDragging = false;
}

将上述代码添加到你的窗体上即可实现无标题栏窗体的拖动功能。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com