我是笑林新記,分享一下我使用C#的一些用法,希望對大家有幫助!
Visual Studio版本:Enterprise 2015
前面十幾節(jié)的課程講了WinForm開發(fā)中一些控件的基本用法,也收到不少的贊同和反饋意見,不少朋友表示現(xiàn)在WinForm不常見了,界面也不好看,現(xiàn)在多用WPF了,這時沒什么爭議的,WPF在界面上可定是比WinForm有優(yōu)勢,不過最近在gitee上看到了一個開源的WinForm項目,作者是Abin, 一個高校人力資源管理系統(tǒng),值得推薦。
運行截圖:
是不是有一種不一樣的感覺,這個項目采用了無邊框和標(biāo)題的設(shè)計
每個Form的屬性中有FormBorderStyle的屬性,默認(rèn)值是Sizable,設(shè)置成None就會沒有邊框和標(biāo)題。
簡單地介紹一下,登錄界面中,最小化和關(guān)閉分別是兩個按鈕,然后左側(cè)是一個Panel,放置有Logo和說明,右側(cè)是登錄和注冊,分別是兩個重疊的Panel,默認(rèn)顯示登錄的Panel,點擊注冊的時候,隱藏登錄panel,顯示注冊panel。
關(guān)于最小化和關(guān)閉的事件很簡單。
private void btn_close_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btn_minsize_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Minimized;
}
因為隱藏了原本的窗體標(biāo)題欄,所以窗體的拖動需要重新寫,這里作者是給了右側(cè)上部分和左側(cè)的部分可以拖動。這里需要重新引用一下User32DLL文件,引入系統(tǒng)窗體拖動消息。
[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 panelTitleBar_MouseDown(object sender, MouseEventArgs e)
{
//拖動窗體
ReleaseCapture();
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE HTCAPTION, 0);
}
登錄界面大致就是這些內(nèi)容了,數(shù)據(jù)庫方面作者用到的是MySQL。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。