用鼠标拖动无边框窗口形式[重复]

2024-02-20

可能的重复:
C# - 使无边框表单可移动? https://stackoverflow.com/questions/1592876/c-sharp-make-a-borderless-form-movable

我通过设置在 C# 中制作了一个无边框的表单

this.FormBorderStyle = FormBorderStyle.None;

现在的问题是如何用鼠标拖动它?


这应该就是您正在寻找的“增强:拖动并移动 WinForms” http://jachman.wordpress.com/2006/06/08/enhanced-drag-and-move-winforms-without-having-a-titlebar/

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();
    }
}

正如博客文章所述,这是一种“欺骗”系统的方法。这样您就不需要考虑鼠标向上/向下事件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用鼠标拖动无边框窗口形式[重复] 的相关文章

随机推荐