本人一直從事安防行業(yè)的編程,從VB到VB.NET,從VC到QT,從C#桌面開發(fā)到C#嵌入式開發(fā),輾轉(zhuǎn)多門語言,這幾天靜下心來思考,將很多項目中經(jīng)常用到的處理封裝起來,以備后用,特別是近期接了幾個私活,如果用已經(jīng)封裝好的常用的處理來開發(fā)的話,估計速度會加快很多,效率也會提高不少,特意準備花幾個星期時間,將常用處理以及自定義控件集合到一個項目。
Windows自帶的消息框比較丑,特別是轉(zhuǎn)到WIN7下更加,項目中用到的消息框非常多,基本上有提示信息、錯誤信息、詢問信息這三種,從美觀角度,MessageBox.show()這個方法出來的消息框有點不盡人意,于是自己寫了一個,個人覺得舒服些。
說明:以下命名忽略了大小寫。
自定義信息框

系統(tǒng)信息框

自定義詢問框

系統(tǒng)詢問框

步驟1:
新建窗體frmMessageBox,放置一個picturebox(picICO)控件和一個label(labinfo)控件以及兩個panel控件,其中panel1里面放一個按鈕,命名為btnOk,文text屬性為確定(&O),dialogresult屬性設置為ok,這樣的話結(jié)束對話框之后會返回dialogresult.ok,這里為了能夠自適應消息長度而改變按鈕寬度和對話框?qū)挾,特意要放置兩個panel,另外一個panel放置兩個按鈕,一個是,一個否。

這樣的話相信你已經(jīng)知道這些控件的用處了吧,圖片框用來顯示對應圖片,信息框的話就是一個大勾,詢問框的話就是一個大問號,提前將資源添加到項目中,建議圖片文件命名最好info.png/error.png這樣的,到時候取資源的話好找,label用來顯示消息。
步驟2:
定義枚舉類型,這里定義了三種,你也可以自己增加。
public enum MessageBoxStyle
{
info=0,
question=1,
error=2
};
步驟3:
重寫構(gòu)造函數(shù)
public frmMessageBox(MessageBoxStyle messageBoxStyle,string msg) { InitializeComponent(); if (messageBoxStyle == MessageBoxStyle.info) { picICO.Image = global::myAlarmSystem.Properties.Resources.info; this.Text = "提示"; panel1.Visible = true; panel2.Visible = false; } else if (messageBoxStyle == MessageBoxStyle.question) { picICO.Image = global::myAlarmSystem.Properties.Resources.question; this.Text = "詢問"; panel1.Visible = false; panel2.Visible = true; } else if (messageBoxStyle == MessageBoxStyle.error) { picICO.Image = global::myAlarmSystem.Properties.Resources.error; this.Text = "錯誤"; panel1.Visible = true; panel2.Visible = false; } this.labInfo.Text = msg; SizeF size = TextRenderer.MeasureText(msg, new Font("宋體", 15, FontStyle.Regular)); int TempWidth = (int)size.Width; if (TempWidth <= 249) { return; } this.Width = (int)size.Width + 130; this.panel1.Width = TempWidth-20; this.panel2.Width = TempWidth-20; btnYes.Width = TempWidth / 2 - 20; btnNo.Width = TempWidth / 2 - 20; }


喜歡
頂
難過
囧
圍觀
無聊
共和國價格
dnf偵探助理買的
什么是成長守護
龍之谷手游土豪
王者榮耀艾琳重