亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

WindowsForm移動一個沒有標題欄的窗口的方法

 更新時間:2020年07月18日 09:48:11   作者:zhuanghamiao  
這篇文章主要介紹了WindowsForm移動一個沒有標題欄的窗口的方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下

在WinForm程序中,要移動沒有標題欄的窗口,基本的實現思路是監(jiān)聽需要拖動窗口內的控件的鼠標事件,然后將鼠標位置發(fā)送給窗口進行相應的位移就可以了。通過借用Windows API也可以很容易實現這一點,比如像下面這樣。

public class Win32Api
{
  public const int WM_SYSCOMMAND = 0x112;
  public const int SC_DRAGMOVE = 0xF012;

  [DllImport("user32.Dll", EntryPoint = "ReleaseCapture")]
  public extern static void ReleaseCapture(); // 鼠標捕獲
  [DllImport("user32.Dll", EntryPoint = "SendMessage")]
  public extern static void SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam); // 將消息發(fā)送給指定的窗口
}

private void pnlHeader_MouseDown(object sender, MouseEventArgs e)
{
  Win32Api.ReleaseCapture();
  Win32Api.SendMessage(this.Handle, Win32Api.WM_SYSCOMMAND, Win32Api.SC_DRAGMOVE, 0);
}

當然,你還可以向這樣向窗口發(fā)送消息,來實現拖動自定義標題欄移動窗口

public const int WM_NCLBUTTONDOWN = 0x00A1;
public const int HTCAPTION = 2;

private void pnlHeader_MouseDown(object sender, MouseEventArgs e)
{
  if (e.Button == MouseButtons.Left)
  {
    // 釋放控件已捕獲的鼠標
    pnlHeader.Capture = false;

    // 創(chuàng)建并發(fā)送WM_NCLBUTTONDOWN消息
    Message msg =
      Message.Create(this.Handle, Win32Api.WM_NCLBUTTONDOWN,
        new IntPtr(Win32Api.HTCAPTION), IntPtr.Zero);
    this.DefWndProc(ref msg);
  }
}

以上就是WindowsForm移動一個沒有標題欄的窗口的方法的詳細內容,更多關于WindowsForm 移動窗口的資料請關注腳本之家其它相關文章!

相關文章

  • C#關鍵字Check簡單介紹

    C#關鍵字Check簡單介紹

    這篇文章主要介紹了C#關鍵字Check功能描述及注意事項,checke關鍵字主要用于對整型類型算術運算和轉換顯式啟用溢出檢查,本文通過程序演示給大家詳細介紹,需要的朋友一起看看吧
    2022-04-04
  • c#  Linq distinct不會調用Equals方法詳解

    c# Linq distinct不會調用Equals方法詳解

    這篇文章主要介紹了c# Linq distinct不會調用Equals方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • WinForm中BackgroundWorker控件用法簡單實例

    WinForm中BackgroundWorker控件用法簡單實例

    這篇文章主要介紹了WinForm中BackgroundWorker控件用法,以一個簡單實例形式分析了BackgroundWorker控件的定義、設置及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#歸并排序的實現方法(遞歸,非遞歸,自然歸并)

    C#歸并排序的實現方法(遞歸,非遞歸,自然歸并)

    C#歸并排序的實現方法(遞歸,非遞歸,自然歸并),需要的朋友可以參考一下
    2013-04-04
  • Unity3D基于陀螺儀實現VR相機功能

    Unity3D基于陀螺儀實現VR相機功能

    這篇文章主要為大家詳細介紹了Unity3D基于陀螺儀實現VR相機功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#串口通信程序實例詳解

    C#串口通信程序實例詳解

    在.NET平臺下創(chuàng)建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空間是System.IO.Ports,創(chuàng)建C#串口通信程序的具體實現是如何的呢?讓我們開始吧
    2013-12-12
  • C#如何將DataTable導出到Excel解決方案

    C#如何將DataTable導出到Excel解決方案

    由于公司項目中需要將系統內用戶操作的所有日志進行轉存?zhèn)浞?,考慮到以后可能還需要還原,所以最后決定將日志數據備份到Excel中
    2012-11-11
  • C#運算符大全_各種運算符號的概述及作用

    C#運算符大全_各種運算符號的概述及作用

    以下是對C#中各種運算符號的說明及作用進行了詳細的總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • 基于WPF實現代碼查看器控件

    基于WPF實現代碼查看器控件

    這篇文章主要為大家詳細介紹了WPF如何實現代碼查看器控件,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-11-11
  • WinForm遍歷窗體所有子控件的方法

    WinForm遍歷窗體所有子控件的方法

    這篇文章主要介紹了WinForm遍歷窗體所有子控件的方法,涉及C#遞歸遍歷相關操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07

最新評論