設置 Tab 鍵順序
例如,假設您建立了兩個名稱為 Text1 和 Text2 的 TextBox,然後又建立了一個名稱為 Commandl 的 CommandButton。應用程序啟動時,Text1 具有焦點。按 TAB 鍵將使焦點按控件建立的順序在控件間移動,如圖 3.20 所示。
設置 TabIndex 屬性將改變一個控件的 tab 鍵順序。 控件的 TabIndex 屬性決定了它在 tab 鍵順序中的位置。按照缺省規定,第一個建立的控件其TabIndex 值為 0,第二個的 TabIndex 值為 1,以此類推。當改變了一個控件的 tab 鍵順序位置,Visual 自動為其它控件的 tab 鍵順序位置重新編號,以反映插入和刪除。例如,要使 Command1 變為 tab 鍵順序中的首位,其它控件的 TabIndex 值將自動向上調整,如下表所示。
因為編號從0開始,TabIndex的最大值總是比tab鍵順序中控件的數目少 1。即使TabIndex屬性值高於控件數目,Visual Basic也會將這個值轉換為控件數減一。
注意 不能獲得焦點的控件以及無效的和不可見的控件不具有 TabIndex 屬性,因而不包含在 tab 鍵順序中。按 TAB 鍵時,這些控件將被跳過。
在 Tab 鍵順序中刪除控件
通常,運行時按 TAB 鍵能選擇 tab 鍵順序中的每一控件。將控件的TabStop 屬性設為 False (0) ,便可將此控件從 tab 鍵順序中刪除。
TabStop 屬性已置為 False 的控件,仍然保持它在實際 tab 鍵順序中的位置,只不過在按 tab 鍵時這個控件被跳過。
注意 一個 OptionButton 組只有一個 tab 站。選中的按鈕(即 Value 值 為True 的按鈕)的 TabStop 屬性自動設為 True,而其它按鈕的 TabStop屬性為 False。
菜單基礎
如果應用程序要為用戶提供一組命令,菜單提供一種方便的給命令分組的方法,並使用戶容易訪問這些命令。
圖 3.21 舉例說明了無標題窗體的菜單界面元素。
菜單欄立即出現在窗體的標題欄下面,並包含一個或多個菜單標題。當單擊一個菜單標題(如“文件”),包含菜單項目的列表就被拉下來。菜單項可以包括命令(如“新建”和“退出”)、分隔條和子菜單標題。用戶看到的每個菜單項和在“菜單編輯器”中定義的一個菜單控件對應(“菜單編輯器”將在本章後面討論)。
要使您的應用程序簡單好用,應該將菜單項按其功能分組。例如,圖 3.21 中與文件有關的命令“新建”,“打開”,和“另存為”都列入“文件”菜單。有些菜單項目直接執行動作,如“文件”菜單中的“退出”菜單項將關閉應用程序。其它菜單項顯示一個對話框,即要求用戶提供應用程序執行動作所需信息的窗口。應該在這些菜單項後加上省略符 (...)。例如,當從“文件”菜單中選擇“另存為...時”,出現“文件另存為”對話框。
菜單控件是一個對象;與其它對象一樣,它具有定義它的外觀與行為的屬性。在設計或運行時可以設置 Caption 屬性、Enabled 和 Visible 屬性、Checked 屬性以及其它屬性。菜單控件只包含一個事件,即 Click 事件,當用鼠標或鍵盤選中該菜單控件時,將調用該事件。
詳細信息 關於菜單控件的詳細信息,請參閱第六章“創建用戶界面”中的“用菜單編輯器創建菜單”。
彈出式菜單
彈出式菜單是顯示於窗體之上,獨立於菜單欄的浮動式菜單,如圖 3.22 所示。顯示在彈出式菜單上的項取決於鼠標右鍵按下時指針的位置,因此,彈出式菜單又稱為上下文菜單(在 Windows 95 中,擊鼠標右鍵可激活上下文菜單。)應該用彈出式菜單提供一種訪問公共的上下文命令的高效方法。例如,用鼠標右鍵單擊一個 TextBox,將會出現一個上下文菜單(如圖 3.22 所示)。
任何至少有一個菜單項的菜單,運行時都可以顯示為彈出式菜單。使用PopupMenu 方法可顯示彈出式菜單。
詳細信息 關於彈出式菜單的詳細信息,請參閱第六章“創建用戶界面”中的“用菜單編輯器創建菜單”。
使用菜單編輯器
使用“菜單編輯器”,可向現存的菜單中增加新命令、用自己的命令替代現存的菜單命令、產生新的菜單和菜單欄,改變和刪除現存菜單和菜單欄。“菜單編輯器”的主要優點是使用方便。可以在只用很少編程的全交互方式中自定義菜單。
要顯示“菜單編輯器”,請
在“工具”菜單中選擇“菜單編輯器這將打開“菜單編輯器”,如圖 3.23 所示
大多數菜單控件屬性可用“菜單編輯器”設置,同樣,所有的菜單屬性也可以在“屬性”窗口中得到。通常,在“菜單編輯器”中建立菜單,但要快速改變單個屬性,一般使用“屬性”窗口。
詳細信息 關於創建菜單和使用“菜單編輯器”的詳細信息,請參閱第六章“創建用戶界面”中的“用菜單編輯器創建菜單”。
用對話框提示用戶
在基於 Windows 的應用程序中,對話框被用來提示用戶提供應用程序繼續運行所需的數據或者向用戶顯示信息。對話框是一種特殊類型的窗體對象,可用以下三種方法之一建立:
使用 MsgBox 或 InputBox 函數的代碼可以創建預定義對話框。
使用標准窗體或自定義已存在的對話框創建自定義對話框。
使用 CommonDialog 控件可創建標准對話框,如“打印”和“打開文件”。
圖 3.24 是利用 MsgBox 函數創建預定義對話框的例子。
當在代碼中調用 MsgBox 函數時,該對話框被顯示。代碼如下:
MsgBox "Error encountered while trying to open file," & vbCrLf & "pleaseretry.", vbExclamation, "Text Editor"
需要給 MsgBox 函數提供三條信息或三個參數:消息文本、決定對話框類型的常數(numeric 值)和標題。由於樣式可以使用按鈕和圖標的各種各樣組合,所以創建對話框更加容易。
由於大多數對話框需要用戶的交互作用,所以通常顯示為模態對話框。在繼續使用應用程序的其它部分以前,必須關閉(隱藏或卸載)模態對話框。例如,若在切換到其它窗體或其它對話框前必須單擊“確定”或者“取消”,那麼這個對話框就是模態對話框。
非模態對話框不需要關閉就可以使焦點在該對話框和其它窗體之間移動。對話框顯示時,可以在當前應用程序的其它地方繼續工作。非模態對話框很少;通常因為應用程序繼續前需要響應才顯示對話框。Visual Basic 中“編輯”菜單的“查找”對話框就是一個非模態對話框。使用非模態對話框顯示常用的命令或信息。
詳細信息 關於創建對話框的詳細信息,請參閱第六章“創建用戶界面”。