<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Winform實(shí)現(xiàn)無邊框拖動(dòng)的兩種方式

          共 1546字,需瀏覽 4分鐘

           ·

          2021-04-02 23:24


          Winform作為桌面應(yīng)用程序的一個(gè)代表,可以說是C#初學(xué)者快速入門最好的一種方式,然而隨著我們的開發(fā)能力的提升,我們對(duì)UI界面的要求變得越來越高,于是我們開始不斷優(yōu)化、升級(jí)我們的UI界面。

          Winform無邊框設(shè)計(jì)是我們常用的一種方式,無邊框設(shè)計(jì)意味著沒有了應(yīng)用程序的標(biāo)題欄,也就無法直接拖動(dòng),今天主要介紹兩種實(shí)現(xiàn)無邊框拖動(dòng)的方式。

          第一種方式:代碼實(shí)現(xiàn)

          ????????Point?mPoint;

          ????????private?void?Panel_MouseDown(object?sender,?MouseEventArgs?e)
          ????????{
          ????????????mPoint?=?new?Point(e.X,?e.Y);
          ????????}

          ????????private?void?Panel_MouseMove(object?sender,?MouseEventArgs?e)
          ????????{
          ????????????if?(e.Button?==?MouseButtons.Left)
          ????????????{
          ????????????????this.Location?=?new?Point(this.Location.X?+?e.X?-?mPoint.X,?this.Location.Y?+?e.Y?-?mPoint.Y);

          ????????????}
          ????????}
          這種方式使用的是自己寫代碼實(shí)現(xiàn),將這段代碼復(fù)制到界面代碼中,然后選擇窗體中的一個(gè)控件,比如Panel或者Label,將它們的MouseDown事件綁定代碼中的MouseDown事件,MouseMove事件綁定代碼中的MouseMove事件,即可。

          第二種方式:Windows API

          ????    [DllImport("user32.dll")]
          ????????public?static?extern?bool?ReleaseCapture();
          ????????[DllImport("user32.dll")]
          ????????public?static?extern?bool?SendMessage(IntPtr?hwnd,?int?wMsg,?int?wParam,?int?lParam);
          ????????public?const?int?WM_SYSCOMMAND?=?0x0112;
          ????????public?const?int?SC_MOVE?=?0xF010;
          ????????public?const?int?HTCAPTION?=?0x0002;

          ????????private?void?TopPanel_MouseDown(object?sender,?MouseEventArgs?e)
          ????????{
          ????????????ReleaseCapture();
          ????????????SendMessage(this.Handle,?WM_SYSCOMMAND,?SC_MOVE?+?HTCAPTION,?0);
          ????????}
          這種方式使用的是Windows底層的API函數(shù),同樣將這段代碼復(fù)制到界面代碼中,然后選擇窗體中的一個(gè)控件,比如Panel或者Label,將它們的MouseDown事件綁定代碼中的MouseDown事件,即可。


          1af9bec491dcac72260479d9ebd04d18.webp

          求贊求分享

          1、本公眾號(hào)文章以原創(chuàng)技術(shù)為主,如果感覺內(nèi)容好看,請(qǐng)給我們一個(gè)贊;

          2、如果想要分享給別人或自己,可以點(diǎn)下左下角分享或收藏;

          3、如果不想錯(cuò)過我們的每篇文章,請(qǐng)給我們公眾號(hào)一個(gè)星標(biāo);

          4、如果你還不會(huì)星標(biāo),請(qǐng)后臺(tái)回復(fù)關(guān)鍵詞——星標(biāo);



          點(diǎn)擊?閱讀原文?,好運(yùn)到

          94c82587f90bfe158635e4392d727cc4.webp


          瀏覽 40
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲熟女乱伦 | 欧美成人电影导航影院 | 天天日天天舔天天爽天天操 | 大香蕉777 | 日本三级aaa久久久久久久 |