通过拖动鼠标无边界窗口形式[复制]通过拖动鼠标无边界窗口形式[复制](Drag borderless

2019-05-12 03:27发布

可能重复:
C# -进行无边界形式活动?

我在C#中做了一个表格无边框,通过设置

this.FormBorderStyle = FormBorderStyle.None;

现在,问题是我如何通过鼠标拖动它?

Answer 1:

这应该是你所期待的“增强:拖动和移动的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();
    }
}

随着博客文章状态,这是“傻瓜式”系统的方式。 这样,您就不需要去想鼠标向上/向下事件。



Answer 2:

你必须注册鼠标按下,的MouseUp和mousemove事件,并根据鼠标的移动而移动的形式。



文章来源: Drag borderless windows form by mouse [duplicate]
标签: c# winforms drag