逐步解說:使用功能表合併和 ToolStrip 控制項建立 MDI 表單
System.Windows.Forms 命名空間支援多重文件介面 (MDI) 應用程式,而 MenuStrip 控制項則支援功能表合併。 MDI 表單也可以使用 ToolStrip 控制項建立。
此逐步解說會示範如何將 ToolStripPanel 控制項與 MDI 表單搭配使用。 這個表單也支援與子功能表的功能表合併。 下列工作會在逐步解說中說明:
建立 Windows Form 專案
建立表單的主功能表 (功能表的實際名稱將會不同)
將 ToolStripPanel 控制項加入至 [工具箱]
建立子表單
依照疊置順序 (Z-order) 排列 ToolStripPanel 控制項
完成這些工作之後,您就會擁有支援功能表合併與可移動式 ToolStrip 控制項的 MDI 表單。
若要將此主題中的程式碼複製為一份清單,請參閱 HOW TO:使用功能表合併和 ToolStrip 控制項建立 MDI 表單。
![]() |
---|
根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。 若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。 如需詳細資訊,請參閱 使用設定。 |
必要條件
若要完成這個逐步解說,您必須要有:
- 具有足夠的權限,以便能夠在安裝了 Visual Studio 的電腦上建立及執行 Windows Form 應用程式專案
建立專案
第一個步驟是建立專案並設定表單。
若要建立專案
建立名為 MdiForm 的 Windows 應用程式專案。
如需詳細資訊,請參閱 HOW TO:建立新的 Windows Form 應用程式專案。
在 Windows Form 設計工具中選取表單。
在 [屬性] 視窗中,將 IsMdiContainer 的值設定為 true。
建立主功能表
MDI 父表單包含了主功能表。 主功能表中有一個名為 [視窗] 的功能表項目。 您可以用 [視窗] 功能表項目來建立子表單。 子表單中的功能表項目會合併到主功能表。
若要建立主功能表
從 [工具箱] 將 MenuStrip 控制項拖曳到表單上。
將 ToolStripMenuItem 加入至 MenuStrip 控制項並命名為 [視窗]。
選取 MenuStrip 控制項。
在 [屬性] 視窗中,將 MdiWindowListItem 屬性的值設定為 ToolStripMenuItem1。
在 [視窗] 功能表項目中加入一個子項目,然後將子項目命名為 [新增]。
在 [屬性] 視窗中,按一下 [事件]。
按兩下 Click 事件。
Windows Form 設計工具會為 Click 事件產生一個事件處理常式。
將下列程式碼插入至事件處理常式。
' This method creates a new ChildForm instance ' and attaches it to the MDI parent form. Private Sub newToolStripMenuItem_Click( _ ByVal sender As Object, _ ByVal e As EventArgs) _ Handles newToolStripMenuItem.Click Dim f As New ChildForm() f.MdiParent = Me f.Text = "Form - " + Me.MdiChildren.Length.ToString() f.Show() End Sub
// This method creates a new ChildForm instance // and attaches it to the MDI parent form. private void newToolStripMenuItem_Click(object sender, EventArgs e) { ChildForm f = new ChildForm(); f.MdiParent = this; f.Text = "Form - " + this.MdiChildren.Length.ToString(); f.Show(); }
將 ToolStripPanel 控制項加入至工具箱
當您在 MDI 表單中使用 MenuStrip 控制項時,必須要有 ToolStripPanel 控制項。 您必須將 ToolStripPanel 控制項加入至 [工具箱],才能在 Windows Form 設計工具中建置 MDI 表單。
若要將 ToolStripPanel 控制項加入至工具箱
開啟 [工具箱],然後按一下 [所有 Windows Form] 索引標籤,以顯示可用的 Windows Form 控制項。
以滑鼠右鍵按一下,開啟捷徑功能表並選取 [選擇項目]。
在 [選擇工具箱項目] 對話方塊中,向下捲動 [名稱] 欄直到找到 [ToolStripPanel] 為止。
選取 [ToolStripPanel] 旁邊的核取方塊,然後按一下 [確定]。
ToolStripPanel 控制項會出現在 [工具箱] 中。
建立子表單
在這個程序中,您將會定義不同的子表單類別,這個類別有自己的 MenuStrip 控制項。 這個表單的功能表項目會與父表單的功能表項目合併。
若要定義子表單
加入一個名為 ChildForm 的新表單至專案。
如需詳細資訊,請參閱 HOW TO:將 Windows Form 加入至專案。
從 [工具箱] 將 MenuStrip 控制項拖曳到子表單上。
按一下 MenuStrip 控制項的智慧標籤圖像 (
),然後選取 [編輯項目]。
在 [項目集合編輯器] 對話方塊中,將新的 ToolStripMenuItem (命名為 ChildMenuItem) 加入至子功能表。
如需詳細資訊,請參閱 ToolStrip 項目集合編輯器。
測試表單
若要測試您的表單
按 F5 編譯並執行表單。
按一下 [視窗] 功能表項目以開啟功能表,然後按一下 [新增]。
在表單的 MDI 工作區 (Client Area) 會建立一個新的子表單。 子表單的功能表會與主功能表合併。
關閉子表單。
子表單的功能表會從主功能表中移除。
按 [新增] 數次。
因為 MenuStrip 控制項的 MdiWindowListItem 屬性已經指定,新增的子表單會自動列出在 [視窗] 功能表項目底下。
加入 ToolStrip 支援
在這個程序中,您會將四個 ToolStrip 控制項加入至 MDI 父表單。 每個 ToolStrip 控制項都是加在停駐於表單邊緣的 ToolStripPanel 控制項內。
若要將 ToolStrip 控制項加入至 MDI 父表單
從 [工具箱] 將 ToolStripPanel 控制項拖曳到表單上。
在 ToolStripPanel 控制項已選取的情況下,按兩下 [工具箱] 中的 ToolStrip 控制項。
ToolStrip 控制項會建立在 ToolStripPanel 控制項中。
選取 ToolStripPanel 控制項。
在 [屬性] 視窗中,將控制項的 Dock 屬性值變更為 Left。
ToolStripPanel 控制項便會停駐在表單的左邊,主功能表的下方。 MDI 工作區會配合 ToolStripPanel 控制項調整大小。
重複步驟 1 到 4。
將新的 ToolStripPanel 控制項停駐在表單的上方。
這個 ToolStripPanel 控制項會停駐在主功能表的下方,但是在第一個 ToolStripPanel 控制項的右邊。 這個步驟說明了疊置順序在正確定位的 ToolStripPanel 控制項中的重要性。
重複步驟 1 到 4 兩次,加入兩個 ToolStripPanel 控制項。
將新的 ToolStripPanel 控制項分別停駐在表單的右側和下方。
依照疊置順序排列 ToolStripPanel 控制項
ToolStripPanel 控制項在 MDI 表單上的停駐位置,是根據該控制項在疊置順序中的位置來決定。 您可以在 [文件大綱] 視窗中輕鬆地排列控制項的疊置順序。
若要依照疊置順序排列 ToolStripPanel 控制項
在 [檢視] 功能表上,按一下 [其他視窗],然後再按 [文件大綱]。
您在上一個程序中所做的 ToolStripPanel 控制項排列是不標準的, 這是因為疊置順序不正確。 請使用 [文件大綱] 視窗變更控制項的疊置順序。
在 [文件大綱] 視窗中,選取 [ToolStripPanel4]。
重複按向下箭頭按鈕,直到 [ToolStripPanel4] 位於清單的底部。
[ToolStripPanel4] 控制項會停駐在表單的底部,其他控制項的下方。
選取 [ToolStripPanel2]。
按一次向下箭頭按鈕,將這個控制項放在清單中的第三個位置。
[ToolStripPanel2] 控制項會停駐在表單的最上方,主功能表的下方,以及其他控制項的上方。
在 [文件大綱] 視窗中選取不同的控制項,並將它們移至疊置順序中的不同位置。 請留意疊置順序對控制項停駐位置的影響。 若要復原變更,請使用 CTRL-Z 或 [編輯] 功能表上的 [復原]。
檢查點
若要測試您的表單
按 F5 編譯並執行表單。
按一下 ToolStrip 控制項的底框,並將控制項拖曳至表單上的其他位置。
您可以將 ToolStrip 控制項從一個 ToolStripPanel 控制項拖曳至另一個。
後續步驟
在這個逐步解說中,您建立了一個使用 ToolStrip 控制項和功能表合併的 MDI 父表單。 您可以將 ToolStrip 系列的控制項使用在許多其他用途上:
使用 ContextMenuStrip 來為您的控制項建立捷徑功能表。 如需詳細資訊,請參閱 ContextMenu 元件概觀 (Windows Form)。
使用自動填入的標準功能表來建立表單。 如需詳細資訊,請參閱 逐步解說:對表單提供標準功能表項目。
賦予您的 ToolStrip 控制項專業的外觀。 如需詳細資訊,請參閱 HOW TO:設定應用程式的 ToolStrip 產生器。
請參閱
工作
HOW TO:將 MenuStrip 插入至 MDI 下拉式功能表 (Windows Form)