zoukankan      html  css  js  c++  java
  • 【.Net】 实现窗口拖动

    实现点击Form可以拖动窗口。

            #region 实现窗口拖动
            [DllImport("user32.dll")]
            public static extern bool ReleaseCapture();
    
            [DllImport("user32.dll")]
            public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
    
            private void frm_MouseDown(object sender, MouseEventArgs e)
            {
                ReleaseCapture();
                SendMessage(this.Handle, 0x0112, 0xF012, 0);
            }
            #endregion
         //调用者
    private void FormMain_MouseDown(object sender, MouseEventArgs e) { frm_MouseDown(this, e); }

    以上只是窗体上没有控件的区域可以拖动,因为有控件的就出发控件的MouseDown事件了。

    如果有比较要可批量注册控件的MouseDown事件。

    但是要注意,不能注册可点击控件的事件,比如Button等需要接受点击事件的控件会失效。

    foreach (Control c in  this.Controls)
            {
                if (!Type.Equals(c.GetType(), button1.GetType()))
                    c.MouseDown += new System.Windows.Forms.MouseEventHandler(this.frm_MouseDown);
            }
  • 相关阅读:
    macOS 上配置 Lua
    Oracle.ManagedDataAccess.dll
    offer
    Costura.Fody
    日志系统
    实战框架ABP
    什么是算法?
    HTTP状态码->HTTP Status Code
    How to untar a TAR file using Apache Commons
    python实践3:cursor() — 数据库连接操作
  • 原文地址:https://www.cnblogs.com/fjfjfjfjfjfj/p/3327121.html
Copyright © 2011-2022 走看看