設置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屬性值高於控件數目,VisualBasic也會將這個值轉換為控件數減一。
注意不能獲得焦點的控件以及無效的和不可見的控件不具有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所示。顯示在彈出式菜單上的項取決於鼠標右鍵按下時指針的位置,因此,彈出式菜單又稱為上下文菜單(在Windows95中,擊鼠標右鍵可激活上下文菜單。)應該用彈出式菜單提供一種訪問公共的上下文命令的高效方法。例如,用鼠標右鍵單擊一個TextBox,將會出現一個上下文菜單(如圖3.22所示)。
任何至少有一個菜單項的菜單,運行時都可以顯示為彈出式菜單。使用PopupMenu方法可顯示彈出式菜單。
詳細信息關於彈出式菜單的詳細信息,請參閱第六章“創建用戶界面”中的“用菜單編輯器創建菜單”。
使用菜單編輯器
使用“菜單編輯器”,可向現存的菜單中增加新命令、用自己的命令替代現存的菜單命令、產生新的菜單和菜單欄,改變和刪除現存菜單和菜單欄。“菜單編輯器”的主要優點是使用方便。可以在只用很少編程的全交互方式中自定義菜單。
要顯示“菜單編輯器”,請
在“工具”菜單中選擇“菜單編輯器這將打開“菜單編輯器”,如圖3.23所示
大多數菜單控件屬性可用“菜單編輯器”設置,同樣,所有的菜單屬性也可以在“屬性”窗口中得到。通常,在“菜單編輯器”中建立菜單,但要快速改變單個屬性,一般使用“屬性”窗口。
詳細信息關於創建菜單和使用“菜單編輯器”的詳細信息,請參閱第六章“創建用戶界面”中的“用菜單編輯器創建菜單”。
用對話框提示用戶
在基於Windows的應用程序中,對話框被用來提示用戶提供應用程序繼續運行所需的數據或者向用戶顯示信息。對話框是一種特殊類型的窗體對象,可用以下三種方法之一建立:
使用MsgBox或InputBox函數的代碼可以創建預定義對話框。
使用標准窗體或自定義已存在的對話框創建自定義對話框。
使用CommonDialog控件可創建標准對話框,如“打印”和“打開文件”。
圖3.24是利用MsgBox函數創建預定義對話框的例子。
當在代碼中調用MsgBox函數時,該對話框被顯示。代碼如下:
MsgBox"Errorencounteredwhiletryingtoopenfile,"&vbCrLf&"pleaseretry.",vbExclamation,"TextEditor"
需要給MsgBox函數提供三條信息或三個參數:消息文本、決定對話框類型的常數(numeric值)和標題。由於樣式可以使用按鈕和圖標的各種各樣組合,所以創建對話框更加容易。
由於大多數對話框需要用戶的交互作用,所以通常顯示為模態對話框。在繼續使用應用程序的其它部分以前,必須關閉(隱藏或卸載)模態對話框。例如,若在切換到其它窗體或其它對話框前必須單擊“確定”或者“取消”,那麼這個對話框就是模態對話框。
非模態對話框不需要關閉就可以使焦點在該對話框和其它窗體之間移動。對話框顯示時,可以在當前應用程序的其它地方繼續工作。非模態對話框很少;通常因為應用程序繼續前需要響應才顯示對話框。VisualBasic中“編輯”菜單的“查找”對話框就是一個非模態對話框。使用非模態對話框顯示常用的命令或信息。
詳細信息關於創建對話框的詳細信息,請參閱第六章“創建用戶界面”。