工具欄
可以用工具欄進一步增強應用程序的菜單界面。工具欄含有工具欄按鈕,它提供了對於應用程序中最常用的命令的快速訪問。例如:Visual Basic 的工具欄含有執行常用命令的 ToolBarButton,如“打開”(打開已存在的工程)、“保存”(存儲當前的工程),等等。
創建工具欄
工具欄(也稱為發條或者控制欄)已經成為許多基於 Windows 的應用程序的標准功能。工具欄提供了對於應用程序中最常用的菜單命令的快速訪問。使用 ToolBar 控件來創建工具欄非常容易且很方便,它在 Visual Basic的專業版與企業版中是可用的。如果使用的是 Visual Basic 學習版,則可以像本章後面的“協調菜單與工具欄的外觀”所描述的那樣用手工來創建工具欄。
下列示例演示為 MDI 應用程序創建工具欄的過程;在標准窗體上創建一個工具欄的過程基本上一樣。
要手工創建工具欄,請按照以下步驟執行:
1. 在 MDI 窗體上放置一個圖片框。圖片框的寬度會自動伸展,直到填滿 MDI 窗體工作空間。工作空間就是窗體邊框以內的區 域,不包括標題條、菜單欄或所有的工具欄、狀態欄或者可能在窗體上的滾動條。
注意 只能把那些直接支持 Align 屬性的控件放置在 MDI 窗體上(圖片框是支持這一屬性的唯一的標准控件)。
2. 在圖片框中,可以放置任何想在工具欄上顯示的控件。典型地,用 CommandButton 或 Image 控件來創建工具欄按鈕。圖 6.16表示出了一個含有 Image 控件的工具欄。
要在圖片框中添加控件,單擊工具欄中的控件按鈕,然後在圖片框中畫出它。
注意 當 MDI 窗體中包含了圖片框時,該 MDI 窗體的內部區域不包括圖片框在內。例如:MDI 窗體的 ScaleHeigh 屬性返回 MDI 窗體的內部高度,這個高度已不包括圖片框的高度。
3. 設置設計時屬性。
使用工具欄的一個好處是可以顯示一個形象的命令圖示。Image 控件是作為工具欄按鈕的一個很好的選擇,因為可以用它來顯示一個位圖。在設計時設置其 Picture 屬性來顯示一個位圖;這樣,當該按鈕被單擊時,即能提供一個命令執行的可見信息。也可以通過設置按鈕的 ToolTipText屬性來使用工具提示,這樣,當用戶把鼠標指針保持在一個按鈕上時,就可以顯示出該工具欄按鈕的名稱。
4. 編寫代碼
因為工具欄頻繁地用於提供對其它命令的快捷訪問,因而在大部分時間內都是從每一個按鈕的 Click 事件中調用其它過程,比如對應的菜單命令。
提示 可用一個不顯示工具欄的 MDI 窗體來使用在運行時不可見的控件(比如 Timer 控件)。為了做到這一點,在 MDI 窗體上放置一個圖片框,把控件放到圖片框中,然後把圖片框的 Visible 屬性設置為 False。
編寫工具欄的代碼
工具欄用於提供訪問某些應用程序命令的快捷方法。例如:圖 6.16 中工具欄上的第一個按鈕就是“新建文件”命令的快捷鍵。現在,可以在 MDINotePad 示例應用程序中三個地方請求創建新文件。
1.在 MDI 窗體上(MDI 窗體上“文件”菜單中的“新建”命令)。
2.在子窗體上(在子窗體“文件”菜單上的“新建”命令)。
3.在工具欄上(“新建文件”按鈕)。
與其把這個代碼重復三次,還不如從子窗體的 mnuFileNew_Click 事件取出原代碼,然後把它放入子窗體的一個公用過程中。可以從上面任何一個事件過程調用這個過程。以下是一個示例:
'這個例程在公共過程中。
Public Sub FileNew () Dim frmNewPad As New frmNotePad frmNewPad.Show End Sub '在子窗體的“文件”菜單上選取“新建”。 Private Sub mnuchildFileNew_Click () FileNew End Sub '在 MDI 窗體的“文件”菜單上選取“新建”。 Private Sub mnumdiFileNew_Click () frmNotePad.FileNew End Sub '在工具欄上單擊“新建文件”按鈕。 Private Sub btnFileNew_Click () frmNotePad.FileNew End Sub