設定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函數時,該對話方塊被顯示。程式碼如下:
MsgBoxErrorencounteredwhiletryingtoopenfile,&vbCrLf&pleaseretry.,vbExclamation,TextEditor
需要提供MsgBox函數三個資訊或三個參數:訊息文字、決定對話方塊類型的常數(numeric值)和標題。由於樣式可以使用按鈕和圖示的各種組合,因此建立對話方塊更加容易。
由於大多數對話框需要使用者的交互作用,所以通常顯示為模態對話框。在繼續使用應用程式的其它部分以前,必須關閉(隱藏或卸載)模態對話框。例如,若在切換到其它窗體或其它對話框之前必須按一下“確定”或“取消”,那麼這個對話框就是一個模態對話框。
非模態對話方塊不需要關閉就可以使焦點在該對話框和其它窗體之間移動。對話方塊顯示時,可以在目前應用程式的其它地方繼續工作。非模態對話方塊很少;通常因為應用程式繼續前需要回應才顯示對話方塊。 VisualBasic中「編輯」功能表的「尋找」對話方塊就是一個非模態對話框。使用非模態對話方塊顯示常用的指令或資訊。
詳細資訊關於建立對話方塊的詳細信息,請參閱第六章「建立使用者介面」。
->