#region 窗体移动API
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;
[DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_SETREDRAW = 0xB;
#endregion
//窗体拖拽(包含双击最大化,根据两次点击的point判断是拖拽还是双击、坐标保存在SetForm.Tag)
textBox1.MouseDown += delegate
{
if (this.Tag != null && ((int[])this.Tag)[0] == Control.MousePosition.X && ((int[])this.Tag)[1] == Control.MousePosition.Y)
{
if (this.WindowState != FormWindowState.Maximized)
{
C#-窗体移动
最新推荐文章于 2024-04-07 13:42:14 发布
这段代码展示了如何使用C#实现窗体的移动和双击最大化功能。通过DllImport导入user32.dll库,利用ReleaseCapture和SendMessage方法处理窗体移动,同时在鼠标按下事件中判断是否为双击以切换窗体的最大化和正常状态。

最低0.47元/天 解锁文章
1469

被折叠的 条评论
为什么被折叠?



