實現自定義訊息對話方塊控制項MsgBox簡介

2021-06-05 22:13:56 字數 3728 閱讀 9672

2011-10-23 來自:cnblogs 字型大小:【 大中

小】 本文主要介紹的是乙個自己編寫的,類似messagebox訊息對話方塊的自定義控制項。這個控制項不是重寫messagebox類,完全是參照messagebox的功能,並在此的基礎上砍掉了一部分功能,如iower;但是,因為有原始碼,我們自己完全可以定義這個訊息對話方塊顯示的文字,,按鈕,尺寸等等。極大的方便了我們在特殊情況下,需要一些另類的訊息對話方塊。

首先,我們來看一下這個自定義控制項的訪問介面:msgbox.cs,這個類提供了一系列過載的靜態方法show,並通過不同的引數個數和型別,控制訊息對話方塊外觀和內容,**如下:

1

///2

///顯示包含文字,按鈕,圖示內的訊息對話方塊

3///

4public

class msgbox

5

23///

24///

顯示可包括文字,符號和按鈕的訊息框

25///

26///

文字27

///標題

28///

結果29

public

static msgboxdialogresult show(string text,string caption)

30

3334

///35

///顯示可包括文字,符號和按鈕的訊息框

36///

37///

文字38

///標題

39///

按鈕40

///結果

41public

static msgboxdialogresult show(string text, string caption, msgboxbuttons buttons)

42

45///

46///

顯示可包括文字,符號和按鈕的訊息框

47///

48///

文字49

///標題

50///

按鈕51

///圖示

52///

結果53

public

static msgboxdialogresult show(string text, string caption, msgboxbuttons buttons, msgboxicon icon)

54

62 }

1

//摘要:2//

指定若干常數,用以定義 system.windows.forms.messagebox 上將顯示按鈕的文字

3 [comvisible(true)]

4internal

class msgboxbuttontext

5

3132

//摘要:

33//

指定識別符號以指示對話方塊的返回值。

34 [comvisible(true)]

35public

enum msgboxdialogresult

36

6970

71//

摘要:72

//指定定義哪些資訊要顯示的常數。

73 [comvisible(true)]

74public

enum msgboxicon

75

109110

//摘要:

111//

指定若干常數,用以定義 system.windows.forms.messagebox 上將顯示哪些按鈕

112 [comvisible(true)]

113public

enum msgboxbuttons

114

下面,我們來看最重要的乙個部分,訊息對話方塊:dialogform窗體:

在這個窗體中,我們定義各種控制項,並給他們的屬性賦上有意義且正確的值,比如:要顯示訊息的內容,那麼就需要lable或textbox控制項,並設定它們的font,localtion,text,name等屬性;要獲取選擇的結果,需要乙個或數個按鈕控制項;在特定條件下,某個控制項的某個事件是否會觸發另外乙個事件等等。設定好某乙個新建的控制項的所有屬性後,將其新增到乙個容器中;所有控制項都建立並新增到容器中後,再將窗體顯示出來,這就是我們看到的訊息對話方塊。下面的**是建立按鈕的方法:

1//2

///設定按鈕

3///

4///

需產生的按鈕組

5private

void setbutton(msgboxbuttons buttons)

6

28break;

29case msgboxbuttons.okcancel:

30

57break;

58case msgboxbuttons.yesno:

59

85break;

86case msgboxbuttons.yesnocancel:

87

125break;

126case msgboxbuttons.abortretryignore:

127

166break;

167case msgboxbuttons.retrycancel:

168

194break;

195case msgboxbuttons.okcopy:

196

222break;

223default:

224

237break;

238 }

239 }

240#endregion

最後,完成了msgbox這個自定義控制項後,就可以將它新增工具箱中,用於其他專案了,使用方式跟messagebox類似。

1  msgbox.show("

程式已崩潰,請重啟!

", "

系統崩潰

", msgboxbuttons.okcancel, msgboxicon.sysbreak);

2 msgbox.show("

密碼錯誤!

", "

錯誤", msgboxbuttons.ok, msgboxicon.error);

3 msgbox.show("

您確定要退出系統?

", "

警告", msgboxbuttons.yesno, msgboxicon.warning);

執行結果如下圖所示:

實現自定義訊息對話方塊控制項MsgBox簡介

2011 10 23來自 cnblogs字型大小 大中 小 本文主要介紹的是乙個自己編寫的,類似messagebox訊息對話方塊的自定義控制項。這個控制項不是重寫messagebox類,完全是參照messagebox的功能,並在此的基礎上砍掉了一部分功能,如iower 但是,因為有原始碼,我們自己完...

自定義對話方塊

public void normaldialog 對話方塊的 private dialoginte ce.onclicklistener mydialoglistener new dialoginte ce.onclicklistener alertdialog.builder對話方塊沒有類似fin...

自定義訊息對話方塊基於Dialog

region 訊息對話方塊 public class messageboxex extform this.topmost true this.formborderstyle formborderstyle.none this.visible false this.width screen.prima...