創(chuàng)建子菜單
所創(chuàng)建的每個菜單可以包含最多五級子菜單。子菜單會分支出另一個菜單以顯示它自己的菜單項。需使用子菜單的場合有:
菜單欄已滿。
某一特定菜單控件很少被用到。
要突出某一菜單控件與另一個的關(guān)系。
然而,如果菜單欄中還有空間,再創(chuàng)建一個菜單標題而不是子菜單。這樣,當菜單拉下時所有控件都可見。限制使用子菜單也是一種好的編程策略,它可以免去查找應用程序菜單界面的負擔(大多數(shù)應用程序都只使用一級子菜單)。
在菜單編輯器中,在不是菜單標題的菜單控件之下縮進的任何菜單控件,都是子菜單控件。一般來說,子菜單控件可以包括子菜單項、分隔符條和子菜單標題。
要創(chuàng)建子菜單,請按照以下步驟執(zhí)行:
1. 創(chuàng)建想作為子菜單標題的菜單項。
2. 創(chuàng)建將出現(xiàn)在新子菜單中的各個項目,然后單擊右箭頭按鈕將它們縮進。
在菜單編輯器中每一縮進級前都加了四個點 (....)。要刪除一縮進級,單擊左箭頭按鈕。
注意 如果想用多于一級的子菜單,可以考慮使用對話框來替代。對話框允許在一個地方指定好幾個選擇。關(guān)于使用對話框的內(nèi)容,請參閱本章后面的“對話框”。
創(chuàng)建菜單控件數(shù)組
菜單控件數(shù)組就是在同一菜單上共享相同名稱和事件過程的菜單項目的集合。菜單控件數(shù)組使用于:
在運行時要創(chuàng)建一個新菜單項,它必須是控件數(shù)組中的成員。如 MDINotepad 示例,它就用一個菜單控件數(shù)組來存儲新近打開的文件清單。
簡化代碼,因為通用代碼塊可以被所有菜單項使用。
每個菜單控件數(shù)組元素都由的索引值來標識,該值在菜單編輯器上“Index 屬性框”中指定。當一個控件數(shù)組成員識別一個事件時,Visual Basic將其 Index 屬性值作為一個附加的參數(shù)傳遞給事件過程。事件過程必須包含有核對 Index 屬性值的代碼,因而可以判斷出正在使用的是哪一個控件。
詳細信息 關(guān)于控件數(shù)組的詳細信息,請參閱第七章“使用 Visual Basic 的標準控件”中的“使用控件數(shù)組”。要在菜單編輯器中創(chuàng)建菜單控件數(shù)組,請按照以下步驟執(zhí)行:
1. 選取窗體。
2. 從“工具”菜單中,選取“菜單編輯器”。
- 或 -
在“工具欄”上單擊“菜單編輯器”按鈕。
3. 在“標題”文本框中,鍵入想出現(xiàn)在菜單欄中的第一個菜單標題的文本。菜單標題文本顯示在菜單控件列表框中。
4. 在“名稱”文本框中,鍵入將在代碼中用來引用菜單控件的名稱。保持“索引”框是空的。
5. 在下一個縮進級,通過設定“標題”和“名稱”來創(chuàng)建將成為數(shù)組中第一個元素的菜單項。
6. 將數(shù)組中第一個元素的“索引”設置為 0。
7. 在第一個的同一縮進級上創(chuàng)建第二個菜單項。
8. 將第二個元素的“名稱”設置成與第一個元素相同,且把它的“索引”設置為 1。
9. 對于數(shù)組中的后續(xù)元素重復步驟 5- 8。
重點 菜單控件數(shù)組的各元素在菜單控件列表框中必須是連續(xù)的,而且必須在同一縮進級上。創(chuàng)建菜單控件數(shù)組時,要把在菜單中出現(xiàn)的分隔符條也包括進去。
運行時創(chuàng)建和修改菜單
設計時創(chuàng)建的菜單也能動態(tài)地響應運行時的條件。例如,如果菜單項的動作在某些點上成為不適當時,通過使其失效可防止對該菜單項的選取。比如:在 MDI NotePad 應用程序中,如果剪貼板上沒有任何文本,則“編輯”菜單中的“粘貼”菜單項變暗,因而就不能被選。
如果有一個菜單控件數(shù)組,也可以動態(tài)地增加菜單項。這將在本主題后面的“運行時添加菜單控件”中講述。
也可以編寫應用程序,使用復選標志來指示幾個命令中的哪一個是最后選取的。例如:如果工具欄被顯示,MDI NotePad 應用程序工具欄的“選項”菜單項就會顯示一個復選標志。本節(jié)描述的其它菜單控件功能包括使菜單項可見或不可見以及增加或刪除菜單項操作的代碼。
使菜單命令有效或無效
所有的菜單控件都具有 Enabled 屬性,當這個屬性設為 False 時,菜單命令無效使它不響應動作。當 Enabled 設為 False 時,快捷鍵的訪問也無效。一個無效的菜單控件會變暗,如圖 6.11 所示的“粘貼”菜單項。
例如:下列語句使 MDI NotePad 應用程序中“編輯”菜單上的“粘貼”菜單項無效。
mnuEditPaste.Enabled = False
菜單標題的無效使得整個菜單無效,因為不首先單擊菜單標題,就不能訪問任何菜單項。例如:下列代碼將使 MDI NotePad 應用程序的“編輯”菜單無效。
mnuEdit.Enabled = False
顯示菜單控件上的復選標志
使用 Checked 屬性,可以把一個復選標志放置在菜單上,以便:
表示打開/關(guān)閉條件的狀態(tài)。選取菜單命令可交替地增加和刪除此復選標志。
指示幾個模式中哪一個正在起作用。MDI NotePad 應用程序的“選項”菜單使用復選標志來指示工具欄的狀態(tài),如圖 6.12 所示。
在 Visual Basic 中可以用 Checked 屬性來創(chuàng)建復選標志。通過選取被標記為 Checked 的復選框來設置菜單編輯器中的 Checked 屬性的初始值。在運行時要從一個菜單控件上增加或刪除復選標志,可以從代碼中設置它的Checked 屬性
所創(chuàng)建的每個菜單可以包含最多五級子菜單。子菜單會分支出另一個菜單以顯示它自己的菜單項。需使用子菜單的場合有:
菜單欄已滿。
某一特定菜單控件很少被用到。
要突出某一菜單控件與另一個的關(guān)系。
然而,如果菜單欄中還有空間,再創(chuàng)建一個菜單標題而不是子菜單。這樣,當菜單拉下時所有控件都可見。限制使用子菜單也是一種好的編程策略,它可以免去查找應用程序菜單界面的負擔(大多數(shù)應用程序都只使用一級子菜單)。
在菜單編輯器中,在不是菜單標題的菜單控件之下縮進的任何菜單控件,都是子菜單控件。一般來說,子菜單控件可以包括子菜單項、分隔符條和子菜單標題。
要創(chuàng)建子菜單,請按照以下步驟執(zhí)行:
1. 創(chuàng)建想作為子菜單標題的菜單項。
2. 創(chuàng)建將出現(xiàn)在新子菜單中的各個項目,然后單擊右箭頭按鈕將它們縮進。
在菜單編輯器中每一縮進級前都加了四個點 (....)。要刪除一縮進級,單擊左箭頭按鈕。
注意 如果想用多于一級的子菜單,可以考慮使用對話框來替代。對話框允許在一個地方指定好幾個選擇。關(guān)于使用對話框的內(nèi)容,請參閱本章后面的“對話框”。
創(chuàng)建菜單控件數(shù)組
菜單控件數(shù)組就是在同一菜單上共享相同名稱和事件過程的菜單項目的集合。菜單控件數(shù)組使用于:
在運行時要創(chuàng)建一個新菜單項,它必須是控件數(shù)組中的成員。如 MDINotepad 示例,它就用一個菜單控件數(shù)組來存儲新近打開的文件清單。
簡化代碼,因為通用代碼塊可以被所有菜單項使用。
每個菜單控件數(shù)組元素都由的索引值來標識,該值在菜單編輯器上“Index 屬性框”中指定。當一個控件數(shù)組成員識別一個事件時,Visual Basic將其 Index 屬性值作為一個附加的參數(shù)傳遞給事件過程。事件過程必須包含有核對 Index 屬性值的代碼,因而可以判斷出正在使用的是哪一個控件。
詳細信息 關(guān)于控件數(shù)組的詳細信息,請參閱第七章“使用 Visual Basic 的標準控件”中的“使用控件數(shù)組”。要在菜單編輯器中創(chuàng)建菜單控件數(shù)組,請按照以下步驟執(zhí)行:
1. 選取窗體。
2. 從“工具”菜單中,選取“菜單編輯器”。
- 或 -
在“工具欄”上單擊“菜單編輯器”按鈕。
3. 在“標題”文本框中,鍵入想出現(xiàn)在菜單欄中的第一個菜單標題的文本。菜單標題文本顯示在菜單控件列表框中。
4. 在“名稱”文本框中,鍵入將在代碼中用來引用菜單控件的名稱。保持“索引”框是空的。
5. 在下一個縮進級,通過設定“標題”和“名稱”來創(chuàng)建將成為數(shù)組中第一個元素的菜單項。
6. 將數(shù)組中第一個元素的“索引”設置為 0。
7. 在第一個的同一縮進級上創(chuàng)建第二個菜單項。
8. 將第二個元素的“名稱”設置成與第一個元素相同,且把它的“索引”設置為 1。
9. 對于數(shù)組中的后續(xù)元素重復步驟 5- 8。
重點 菜單控件數(shù)組的各元素在菜單控件列表框中必須是連續(xù)的,而且必須在同一縮進級上。創(chuàng)建菜單控件數(shù)組時,要把在菜單中出現(xiàn)的分隔符條也包括進去。
運行時創(chuàng)建和修改菜單
設計時創(chuàng)建的菜單也能動態(tài)地響應運行時的條件。例如,如果菜單項的動作在某些點上成為不適當時,通過使其失效可防止對該菜單項的選取。比如:在 MDI NotePad 應用程序中,如果剪貼板上沒有任何文本,則“編輯”菜單中的“粘貼”菜單項變暗,因而就不能被選。
如果有一個菜單控件數(shù)組,也可以動態(tài)地增加菜單項。這將在本主題后面的“運行時添加菜單控件”中講述。
也可以編寫應用程序,使用復選標志來指示幾個命令中的哪一個是最后選取的。例如:如果工具欄被顯示,MDI NotePad 應用程序工具欄的“選項”菜單項就會顯示一個復選標志。本節(jié)描述的其它菜單控件功能包括使菜單項可見或不可見以及增加或刪除菜單項操作的代碼。
使菜單命令有效或無效
所有的菜單控件都具有 Enabled 屬性,當這個屬性設為 False 時,菜單命令無效使它不響應動作。當 Enabled 設為 False 時,快捷鍵的訪問也無效。一個無效的菜單控件會變暗,如圖 6.11 所示的“粘貼”菜單項。
例如:下列語句使 MDI NotePad 應用程序中“編輯”菜單上的“粘貼”菜單項無效。
mnuEditPaste.Enabled = False
菜單標題的無效使得整個菜單無效,因為不首先單擊菜單標題,就不能訪問任何菜單項。例如:下列代碼將使 MDI NotePad 應用程序的“編輯”菜單無效。
mnuEdit.Enabled = False
顯示菜單控件上的復選標志
使用 Checked 屬性,可以把一個復選標志放置在菜單上,以便:
表示打開/關(guān)閉條件的狀態(tài)。選取菜單命令可交替地增加和刪除此復選標志。
指示幾個模式中哪一個正在起作用。MDI NotePad 應用程序的“選項”菜單使用復選標志來指示工具欄的狀態(tài),如圖 6.12 所示。
在 Visual Basic 中可以用 Checked 屬性來創(chuàng)建復選標志。通過選取被標記為 Checked 的復選框來設置菜單編輯器中的 Checked 屬性的初始值。在運行時要從一個菜單控件上增加或刪除復選標志,可以從代碼中設置它的Checked 屬性

