MsgBox是Visual Basic和VBS中的一個函數(shù),功能是彈出一個對話框,等待用戶單擊按鈕,并返回一個Integer值表示用戶單擊了哪一個按鈕。
“MsgBox”即為“Message Box”的縮寫,在英語中意為“信箱”。
MsgBox函數(shù)和MsgBox語句均可用來彈出對話框,不同處在于MsgBox函數(shù)可以返回一個值,而MsgBox語句不會返回值。
MsgBox語句:用于彈出一個對話框。
格式如下:
MsgBox內(nèi)容[,類型][,標(biāo)題][,幫助文件名,幫助主題目錄號]
在IE地址欄中輸入“javascript:alert(“歡迎XX”)”,然后按enter鍵,則彈出對話框“歡迎XX”
VB中MsgBox語句也可方便實(shí)現(xiàn),在窗體的單擊事件中輸入如下代碼
Private Sub Form_click() MsgBox ("歡迎XX") End Sub
MsgBox內(nèi)容[,類型][,標(biāo)題][,幫助文件名,幫助主題目錄號]
“內(nèi)容”參數(shù),為必要參數(shù),是一個字符串,其長度不得超過1024字符。如果超過,多余的部分會被省略。字符串的內(nèi)容在由MsgBox語句彈出的對話框中顯示。當(dāng)字符串在一行內(nèi)顯示不完時,將自動換行。也可用“chr$(13)+chr$(10)”或“vbCrlf”進(jìn)行強(qiáng)制換行。
例如
Private Sub Form_click() MsgBox "歡迎XX" & Chr(13) + Chr(10) & "祝XX快樂每一天!" End Sub
運(yùn)行后將彈出對話框如圖:
“類型”參數(shù),它是一個整數(shù)值或符號常量,用來控制在對話框內(nèi)顯示的按鈕、圖標(biāo)的種類及數(shù)量。該參數(shù)的值由4類數(shù)值相加產(chǎn)生,這4類數(shù)值或符號常量分別表示按鈕的類型、顯示圖標(biāo)的種類、活動按鈕的位置以及強(qiáng)制返回。不過,對于MsgBox語句,按鈕的類型及強(qiáng)制返回作用不大,但對于MsgBox函數(shù)卻很有用。在MsgBox函數(shù)中可通過按鈕對話框中某個按鈕而執(zhí)行指定的操作。
MsgBox類型參數(shù)的取值:
符號常量 | 值 | 作 用 | |
按 鈕 類 型 | vbOKOnly | 0 | 只顯示“確定”按鈕 |
vbOKCancel | 1 | 只顯示“確定”及“取消”按鈕 | |
vbAbortRetryIgnore | 2 | 顯示“放棄”、“重試”和“忽略”按鈕 | |
vbYesNoCancel | 3 | 顯示“是”、“否”和“取消”按鈕 | |
vbYesNo | 4 | 顯示“是”和“否”按鈕 | |
vbRetryCancel | 5 | 顯示“重試”和“取消”按鈕 | |
圖 標(biāo) 樣 式 | vbCritical | 16 | 顯示系統(tǒng)叉號圖標(biāo) |
vbQuestion | 32 | 顯示系統(tǒng)問號圖標(biāo) | |
vbExclamation | 48 | 顯示系統(tǒng)嘆號圖標(biāo) | |
vbInformation | 64 | 顯示系統(tǒng)信息圖標(biāo) | |
默 認(rèn) 按 鈕 | vbDefaultButton1 | 0 | 第一個按鈕為默認(rèn)按鈕 |
vbDefaultButton2 | 256 | 第二個按鈕為默認(rèn)按鈕 | |
vbDefaultButton3 | 512 | 第三個按鈕為默認(rèn)按鈕 | |
vbDefaultButton4 | 768 | 第四個按鈕為默認(rèn)按鈕 | |
強(qiáng)制 返回 | vbApplicationModal | 0 | 應(yīng)用程序強(qiáng)制返回 |
vbSystemModal | 4096 | 系統(tǒng)強(qiáng)制返回 |
例如:
Private Sub Form_click() MsgBox "歡迎XX" & Chr(13) + Chr(10) & "祝XX快樂每一天!",2 End Sub
運(yùn)行后將彈出對話框如圖:
例如:
Private Sub Form_click() MsgBox "歡迎XX" & Chr(13) + Chr(10) & "祝XX快樂每一天!",64 End Sub
運(yùn)行后將彈出對話框如圖:
如果要同時定義按鈕類型和圖標(biāo)樣式,可直接將按鈕類型的取值和圖標(biāo)樣式的取值相加即可。例如:2+64
Private Sub Form_click() MsgBox "歡迎XX" & Chr(13) + Chr(10) & "祝XX快樂每一天!",66 End Sub
執(zhí)行結(jié)果如圖:
Private Sub Form_click() MsgBox "歡迎XX" & Chr(13) + Chr(10) & "祝XX快樂每一天!",66+512 End Sub
則會將默認(rèn)按鈕變?yōu)榈谌齻€按鈕,執(zhí)行結(jié)果如圖:
如果對話框中只有三個按鈕,代碼卻為“66+768”,執(zhí)行結(jié)果為默認(rèn)選中第一個按鈕。
“標(biāo)題”參數(shù),用來指定對話框的標(biāo)題欄文字。
例如:
Private Sub Form_click() MsgBox "歡迎XX" & Chr(13) + Chr(10) & "祝XX快樂每一天!",65 + 512, "許愿池" End Sub
執(zhí)行結(jié)果:
*************
MsgBox函數(shù),除可返回值外,其他功能與MsgBox語句相同。
MsgBox函數(shù)返回值是一個整數(shù),可以是1~7之間的任意整數(shù),它們分別對應(yīng)7個按鈕被選中的狀態(tài)。
返回值 | 操 作 | 符號常量 |
1 | 選“確定”按鈕 | vbOk |
2 | 選“取消”按鈕 | vbCancel |
3 | 選“終止”按鈕 | vbAbort |
4 | 選“重試”按鈕 | vbRetry |
5 | 選“忽略”按鈕 | vblgnore |
6 | 選“是”按鈕 | vbYes |
7 | 選“否”按鈕 | vbNo |
例如:
在按鈕【退出】的雙擊事件中輸入如下代碼:
Private Sub Command1_Click() Dim a As Integer ‘定義整形變量a a = MsgBox("你確定要退出嗎?", 1 + 32) ‘用變量a來接收MsgBox函數(shù)的返回值 If a = 1 Then ‘如果變量a的值為1,即MsgBox函數(shù)的返回值為1。那么 End Else Print ("你沒有退出。") End If End Sub
(1)捷報:力度最輕、親。
MsgBox("操作成功!", vbOKOnly + vbInformation, "提示"
(2)選擇:力度中等,需認(rèn)真對待。
If MsgBox("是否繼續(xù)?", vbYesNo + vbQuestion, "選擇") = MsgBoxResult.Ok Then '//繼續(xù) Else Exit Sub '//否則退出,或做其他操作。 End If
(3)警告:力度最大,問題嚴(yán)重,需用戶停止現(xiàn)在的操作,更改操作。
If MsgBox("電量不足,請盡快蓄電!", vbOKOnly + vbExclamation, "警示") = MsgBoxResult.Ok Then Else Exit Sub End If
在編程中,發(fā)現(xiàn)有些信息少數(shù)字描述不清楚;字?jǐn)?shù)多了以后發(fā)現(xiàn)重要信息易被淹沒,用戶較難找到重點(diǎn)。
這時,我找到一種方法,就是采用轉(zhuǎn)行的方式,將最重要的簡練寫在第一行,其他內(nèi)容轉(zhuǎn)行詳寫。這時只需用轉(zhuǎn)行符(“vbCr”或“vbCrLf”)就可以解決。
例:MsgBox("系統(tǒng)的基本數(shù)據(jù)未設(shè)定好,暫不支持上機(jī)操作。" & vbCrLf & "請聯(lián)系管理員!", MsgBoxStyle.Exclamation, "提示")
最后,再看看一條MsgBox語句
If MsgBox("是否繼續(xù)?", vbYesNo + vbQuestion + vbQuestion + vbMsgBoxSetForeground + vbDefaultButton1, "選擇") = MsgBoxResult.Ok Then '//繼續(xù) Else Exit Sub '//否則退出,或做其他操作。 End If
上面的程序沒有語法錯誤,中間以vb開頭的關(guān)鍵字也沒有順序的要求,從這里可以看出使用很簡單。
下面對一些常用的進(jìn)行整理:
+ vbAbort:彈出“中止”按鈕
+ vbIgnore :彈出“忽略”按鈕
+ vbRetry :彈出“重視”按鈕
MsgBoxResult.Abort:單擊"中止"按鈕
MsgBoxResult.Ignore :單擊"忽略"按鈕
MsgBoxResult.Retry :單擊"重試"按鈕
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答?。?點(diǎn)擊進(jìn)入論壇