Drag borderless windows form by mouse [duplicate]

前提是你 提交于 2019-11-26 14:34:54

问题


Possible Duplicate:
C# - Make a borderless form movable?

I have made a form without border in C#, by setting

this.FormBorderStyle = FormBorderStyle.None;

Now, problem is how can I drag it by mouse?


回答1:


This should be what you are looking for "Enhanced: Drag and move 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();
    }
}

As the blog post states, this is a way to "fool" the system. This way you don't need to think about mouse up/down events.




回答2:


You have to register for the MouseDown, MouseUp and MouseMove events and move the form according to the movement of the mouse.



来源:https://stackoverflow.com/questions/4767831/drag-borderless-windows-form-by-mouse

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!