6 輸入與輸出

2 控制項(初階)單元中,我們已利用TextBox及Label學過簡單的輸入與輸出,在本章,再介紹兩個常用的函式讓輸入與輸出更能靈活運用。

請注意,本章所介紹的兩個函式,不是「工具」,故在工具箱內是找不到的,需要在程式碼視窗內key-in進去。

6-1常用的輸出函式

MsgBox

用以顯示一個訊息交談窗。

*

MsgBox(訊息字串,樣式值,標題字串)

亦可以如下的寫法得到其按下按鈕的傳回變數值。

傳回變數=MsgBox(訊息字串,樣式值,標題字串)

此函數有三個參數,分別為:訊息字串,樣式值,標題字串,而樣式,標題字串是可省略的,但省略時請將","號保留,比較不會混淆,如MsgBox(訊息字串, ,)。

若訊息字串有換行的需要,可利用 vbCrLf 及 vbNewLine 換行符號來換行。

下表為樣式值之呈現效果,可撘配使用。也就是我們可以用"+"這個符號,把想呈現的按鈕組合,搭配圖示來呈現。

樣式值(種類)
樣式值
效果
備註
按鈕組合 MsgBoxStyle.OkCancel
 
  MsgBoxStyle.OkOnly
若第二個參數為空白,則顯示此按鈕。
  MsgBoxStyle.YesNoCancel
 
  MsgBoxStyle.YesNo
 
  MsgBoxStyle.AbortRetryIgnore
 
  MsgBoxStyle.RetryCancel
 
圖示  
 
  MsgBoxStyle.Critical
 
  MsgBoxStyle.Exclamation
 
  MsgBoxStyle.Information
 
  MsgBoxStyle.Question
 
預設按鈕  
向右對齊  

 

下表為MsgBox按下按鈕之傳回值。傳回值可幫助程式設計者,得知使用者按下何按鈕。

傳回值之按鈕鈙述
傳回值之按鈕圖示
傳回值
備註

確定(OK)

 

1

 

取消(Cancel)

 

2

 

中止(Abort)

 

3

 

重試(Retry)

 

4

 

忽略(Ignore)

 

5

 

是(Yes)

 

6

 

否(No)

 

7

 

 

 

 

 

製作程式(ex6_1.exe):

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "ex6_1"
Dim m1 As String = "訊息視窗"
Dim m2 As String = "MsgBox"
Dim m3 As String = "第二個參數"
'''''宣告字串變數,以利程式判讀
Dim r1, r2, r3, r4, r5 as Integer
'''''宣告MsgBox傳回值之變數

'''''以下之MsgBox若沒有傳回值,則只能擇一,不可同時使用

r1 = MsgBox("第一個" & m1 & m2, , "省略" & m3)
'''''利用 & 連接字串,且省略了第二個參數
r2 = MsgBox("第二個" & m1 & m2, MsgBoxStyle.YesNoCancel + MsgBoxStyle.Information, "有" & m3)
r3 = MsgBox("第三個" & m1 & m2, MsgBoxStyle.YesNoCancel + MsgBoxStyle.Information, "有" & m3)
'''''有第二個參數以顯示不同的按鈕及圖示
r4 = MsgBox("第四個" & m1 & m2 & vbCrLf & vbNewLine & "且換行", MsgBoxStyle.YesNoCancel + MsgBoxStyle.Information, "有" & m3)
'''''利用 vbCrLf 及 vbNewLine 換行符號來換行
r5 = MsgBox("第五個" & m1 & m2 & "你的傳回值依序為" & vbCrLf & "1:" & r1 & vbCrLf & "2:" & r2 & vbCrLf & "3:" & r3 & vbCrLf & "4:" & r4, MsgBoxStyle.YesNoCancel + MsgBoxStyle.Information, m2 & "之傳回值")
'''''依序換行列出各傳回值
End Sub
End Class


6-2常用的輸入函式

InputBox

用以顯示一個輸入視窗。

傳回變數=InputBox(訊息字串,標題字串,輸入欄的預設值)

此函數有三個參數,分別為:訊息字串,標題字串,輸入欄的預設值,而標題字串,輸入欄的預設值是可省略的,但省略時請將","號保留,比較不會混淆,如InputBox(訊息字串, , ) 。

製作程式(ex6_2.exe):

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim v1 As Single
Dim v2 As Single
Dim pi As Single = 3.1415
'''''預先指定pi值的大小
'''''v1 = InputBox("訊息字串", "標題字串", "輸入欄的預設值")
v1 = InputBox("計算圓面積,請輸入半徑", "ex6_2", 1)
'''''由InputBox得到傳回值v1
v2 = pi * (v1) ^ 2
'''''v2為計算圓面積的值
MsgBox("計算結果為:" & v2, MsgBoxStyle.OkOnly, "圓面積")
'''''顯示圓面積

''''將以上兩行程式碼交換會有什麼結果?

 

End Sub
End Class

try ex6_3 製作一含有兩個InputBox,計算三角形面積的程式。

try ex6_4 若是需輸入"文字",宣告之資料型別要怎麼改?