五月天青色头像情侣网名,国产亚洲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ó)家法律
衡阳市| 芮城县| 甘孜| 永兴县| 富裕县| 睢宁县| 佛坪县| 广灵县| 麻城市| 安平县| 林西县| 鄂托克旗| 绥中县| 北安市| 天峨县| 县级市| 横山县| 旬邑县| 建水县| 康平县| 杭锦后旗| 三门峡市| 龙泉市| 梁河县| 湟中县| 金沙县| 雅江县| 怀仁县| 山阴县| 石渠县| 甘洛县| 呼玛县| 腾冲县| 新化县| 沙田区| 怀远县| 成武县| 黎平县| 元谋县| 太白县| 株洲县|