Ch6 Visual Basic 輸入與輸出本章將會介紹. 標籤 (Label). 文字方塊 (Text Box). 訊息對話方塊 (Message Box). 輸入對話方塊 (Input Box) Visual Basic 在推出後, 隨即引起一陣熱列的回響和使用, 除了它繼承了 Basic 原有的易學易用的特性之外, 更重要的是它提供了許多控制項, 供程式設計師快速地完成程式設計的工作 在本章的內容, 將介紹幾種常用的輸入 / 輸出控制項物件 6-1 標籤 (Label) 1. 主要功能 : 做文字輸出用, 將要顯示的文字放在標籤裡 2. 重要屬性 : Caption( 標題 ) (1) 可將欲顯示的文字, 指定給標籤的 Caption 屬性, 如 : lab_show.caption= Hi,VB6.0 則標籤 lab_show 的標籤顯示結果應該會如下 : (2) 通常使用標籤控制項來標示沒有 Caption 屬性的控制項, 如 TextBox (3) 標籤控制項不接受 駐點, 所以可被用來為其它控制項建立快速鍵 建立一表單如圖
lab_name lab_sex txt_name txt_sex 各個物件之重要屬性 : lab_name Name lab_name TabIndex 0 Caption 姓別 &N lab_sex Name lab_sex TabIndex 2 Caption 性別 &S txt_name Name txt_name TabIndex 1 Text txt_sex Name txt_sex TabIndex 3 Text 上述的標籤控制項被建立作為快速鍵 而 lab_name lab_sex 的 UseMnemonic 屬性值要被設為 True(default), 且 Caption 屬性值需加上一個 & 字元 + 指定的字元 執行後, 可以發現 Alt+N 會移至 txt_name TextBox;Alt+S 會移至 txt_sex TextBox 事實上, Alt+N 會先 SetFocus 至 lab_name 上, 但因標籤控制項是無法 駐點 的, 所以就會移到下一個 TabIndex 3. 其餘屬性 (1) 與字形變化有關 : FontBold True/False 粗體 FontLtalic True/False 斜體 FontUnderline True/False 底線 FontName Ex: 細明體 字體名稱 FontStrikethru True/False 刪除線 (2) 與外觀有關 : Alignment 0,1,2 靠左, 中, 右對齊 AutoSize True/False 是否自動調整標籤大小 BackColor 背景顏色 Backstyle 0,1 設定為 (1= 不 ) 透明標籤 ForeColor 文字顏色 Visible True/False 顯示或隱藏
(3) 與位置有關 : Left 標籤左上角 x 座標 Top 標籤左上角 Y 座標 Height 高度 Width 寬度 範例 6-1 建立一表單如右 : 其中 lab_test 的 Caption 屬性設為 字型變化 並 在此表單模組加入下段之 程式碼 Private Sub cmd_bold_click() If lab_test.fontbold = False Then lab_test.fontbold = True Else lab_test.fontbold = False Private Sub cmd_ltalic_click() If lab_test.fontitalic = False Then lab_test.fontitalic = True Else lab_test.fontitalic = False Private Sub cmd_underline_click() If lab_test.fontunderline = False Then lab_test.fontunderline = True Else lab_test.fontunderline = False Private Sub cmd_l_click() lab_test.fontsize = lab_test.fontsize + 1 Private Sub cmd_small_click() lab_test.fontsize = lab_test.fontsize - 1 6-2 文字方塊 (TextBox) 1. 主要功能 : 具備基本的文字輸入 輸出的功能 2. 重要屬性 : Text
作資料輸出到文字方塊, 或從文字方塊讀取資料, 都可透過 Text 屬性達成 如 : txt_name= VB6.0 最讚 範例 6-2 單位轉換 建立一表單, 其上有一控制項陣列 txt_box(0), txt_box(1) 如下 : 並加入下列程式碼 : Private Sub txt_box_keypress(index As Integer, KeyAscii As Integer) If KeyAscii = vbkeyreturn Then ' 判斷是否輸入 Enter 鍵 Select Case Index Case 0: txt_box(1) = txt_box(0) / 2.54 ' 公分轉英吋 Case 1: txt_box(0) = txt_box(1) * 2.54 ' 英吋轉公分 End Select 討論 : - 當在控制項上從鍵盤按下任合鍵, 會發生 obj_keypress(keyascii as Integer) 事件 - 若為控制項陣列, 則會 obj_keypress(index As Integer, KeyAscii As Integer) 表現 其中 Index 指陣列索引 -Text 屬性在設計接段和執行階段都可以運用 3.MultiLine 屬性 ( 設計階段 ) 當 MultiLine 屬性設定為 True( 預設值為 False), 文字方塊控制項內可顯示多 行的文字 如下圖 PS : MultiLine 屬性設定為 Tru 時, 可透過 Alignment 屬性將文字靠左 中 右對齊 4. ScrollBars 屬性 ( 設計階段 ) 產生水平或垂直捲動軸 其設定值可以是 0-None( 無捲軸 ),1-Horizontial( 水
平捲軸 ),2-Vertical( 垂直捲軸 ),3-Both 範例 6-3 設計一表單如下, 並將 txt_lyric 之 MultiLine 屬性 =True; ScrollBars 屬性為 2 提示 : a. VB 所提供的 Tab 鍵可 以使駐點移至下一個控制 項 我們可以利用在按下 Enter 鍵時送出 Tab 鍵代 替 : Sendkeys {Tab} 加入下列程式碼 : Private Sub cmd_save_click() Call Form_Load Private Sub cmd_end_click() End Private Sub Form_Load() txt_song.text = "" txt_singer.text = "" txt_song.setfocus ' 將駐點移至 txt_song Private Sub txt_lyric_keypress(keyascii As Integer) If KeyAscii = vbkeyreturn Then setfocustonext Private Sub txt_singer_keypress(keyascii As Integer) If KeyAscii = vbkeyreturn Then setfocustonext Private Sub txt_song_keypress(keyascii As Integer) If KeyAscii = vbkeyreturn Then setfocustonext Sub setfocustonext() SendKeys "{Tab}" KeyAscii = 0 ' 避免送出 Enter 討論 : a. 在 txt_lyric 中要有 多行 及 垂直 ScrollBar 功能, 要在其屬性視窗設定 MultiLine=True ScrollBars=2 b. SendKeys 後可用的字串可參考 MSDN SendKeys 方法 5. PasswordChar:( 密碼方塊 ) 若文字方塊之 PasswordChar 屬性值設為 *, 則可用來當密碼之輸入欄位 6. MaxLength : ( 最大字數 ) 可用 MaxLength 屬性來限制輸入的字元數, 並於超出範圍實發出警告聲
7. Locked : ( 唯讀性 ) 防止 User 更改 TextBox 內容, 可將 Locked 屬性設為 True 但仍可用程式命令來改變顯示內容, 只是不再接受操作者的輸入動作 6-3 訊息對話方塊 (MessageTextBox) 訊息對話方塊的種類有 2 種 Sub 程序型與 Function 程序型 其各自的呼叫 語法如下 : ( 1) Sub 程序型 : MsgBox 訊息 [, 格式類別 ][, 標題 ] (2)Function 程序型 : 傳回值 = MsgBox 訊息 [, 格式類別 ][, 標題 ] 說明 : a. 訊息 : 顯示於訊息的字串 b. 格式類別 : 一個對話的類別一共包含三種 : 按鈕種類 圖示設定 預設 鈕設定 按鈕種類 參數代碼 設定值 意義 vbokonly 0 確定鈕 vbokcancel 1 確定 取消鈕 vbabortretryignore 2 放棄 重試 忽略鈕 vbyesnocancel 3 是 否 取消鈕 vbyesno 4 是 否鈕 vbretrycancel 5 重試 取消鈕 圖示設定 參數代碼 設定值 意義 vbcritical 16 Critic al Message 圖示 vbquestion 32 Warning Query 圖示 vbexclamation 48 Warning Message 圖示 Function 類別的 MsgBo x 按鈕, 所傳回的值如下表 傳回值 按鈕 1 確定 2 取消 3 異常終止 4 重試 5 忽略 6 是 7 否