c#实现无标题栏窗口拖动的方法

发布时间:2020-11-14编辑:脚本学堂
有关c#无标题窗口拖动效果的实现代码,当把窗体的FormBorderStyle属性设为None后会导致边框没了,结果窗体无法用鼠标拖动、最大、最下化和关闭。

c#中无标题栏窗口拖动

当把窗体的FormBorderStyle属性设为None后会导致边框没了,结果窗体无法用鼠标拖动、最大、最下化和关闭。

解决窗体可拖动问题:

1、首先,导入命名空间:
 

using System.Runtime.InteropServices;

2、无标题窗口拖动:
 

复制代码 代码示例:
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd,int msg,int wparam,int lparam);
protected override void OnMousedown(MouseEventArgs e)
{
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left)//按下的是鼠标左键
 {
  Capture = false;//释放鼠标使能够手动操作
SendMessage(Handle, 0x00A1, 2, 0);//拖动窗体
 }
}

说明:
关于最小化、最大化和关闭按钮,则可以利用按钮控件,再把按钮控件的背景图片设为相应的图片,再在各自的单击事件中指明所需操作即可,即可实现最大、最小、关闭的功能,还可以对按钮美化。