五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

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

2021-05-27 13:46 作者:付工上位機(jī)實(shí)戰(zhàn)  | 我要投稿

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

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

}
}

這種方式使用的是自己寫(xiě)代碼實(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事件,即可。


Winform實(shí)現(xiàn)無(wú)邊框拖動(dòng)的兩種方式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
游戏| 凭祥市| 浏阳市| 晋州市| 金寨县| 门源| 贵德县| 兰溪市| 鄂尔多斯市| 塔城市| 察隅县| 沁源县| 万荣县| 古交市| 磴口县| 定襄县| 西峡县| 侯马市| 阜阳市| 观塘区| 汉寿县| 湄潭县| 黑河市| 昌宁县| 永城市| 连州市| 正蓝旗| 朝阳县| 读书| 沙雅县| 华安县| 平利县| 安吉县| 荥经县| 兴安盟| 交口县| 元江| 肇州县| 封丘县| 黄平县| 通道|