可能重复:
C# - 如何使无边框窗体可移动?
我已经通过设置
this.FormBorderStyle = FormBorderStyle.None;
来制作了一个没有边框的 C# 窗体。现在问题是如何用鼠标拖动它?
可能重复:
C# - 如何使无边框窗体可移动?
我已经通过设置
this.FormBorderStyle = FormBorderStyle.None;
来制作了一个没有边框的 C# 窗体。现在问题是如何用鼠标拖动它?
这应该就是你要找的"增强版:无需标题栏即可拖动和移动WinForms"
public partial class MyDraggableForm : Form
{
private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;
///
/// Handling the window messages
///
protected override void WndProc(ref Message message)
{
base.WndProc(ref message);
if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
message.Result = (IntPtr)HTCAPTION;
}
public MyDraggableForm()
{
InitializeComponent();
}
}
根据博客文章所述,这是一种“愚弄”系统的方法。这样,您就不需要考虑鼠标上/下事件。您需要注册MouseDown、MouseUp和MouseMove事件,并根据鼠标的移动来移动窗体。