Share via


逐步解說:使用功能表合併和 ToolStrip 控制項建立 MDI 表單

System.Windows.Forms 命名空間支援多重文件介面 (MDI) 應用程式,而 MenuStrip 控制項則支援功能表合併。 MDI 表單也可以由 ToolStrip 控制項建立。

本逐步解說示範如何搭配 MDI 表單使用 ToolStripPanel 控制項。 這個表單也支援子功能表的功能表合併。 本逐步解說說明下列工作:

  • 建立 Windows Forms 專案。

  • 建立表單的主功能表。 功能表的實際名稱會有所不同。

  • ToolStripPanel 控制項新增至 工具箱

  • 建立子表單。

  • 依迭置順序排列 ToolStripPanel 控制項。

當您完成時,您將有一個支援功能表合併和可 ToolStrip 移動控制項的 MDI 表單。

若要將本主題中的程式碼複製為單一清單,請參閱 如何:使用功能表合併和 ToolStrip 控制項 建立 MDI 表單。

必要條件

您將需要 Visual Studio 才能完成本逐步解說。

建立專案

  1. 在 Visual Studio 中,建立名為 MdiForm 的 Windows 應用程式專案( 檔案 > 新 > 專案 > Visual C# Visual Basic > 傳統型 > Windows Forms 應用程式)。

  2. 在 Windows Forms 設計工具中,選取表單。

  3. 在屬性視窗中,將 的值 IsMdiContainer 設定為 true

建立主功能表

父 MDI 表單包含主功能表。 主功能表有一個名為 Window 的功能表項目 。 使用 [ 視窗] 功能表項目,您可以建立子表單。 子表單中的功能表項目會合並至主功能表。

  1. 從 [ 工具箱] MenuStrip 將控制項拖曳到表單上。

  2. ToolStripMenuItem將 新增至 控制項, MenuStrip 並將它命名為 Window

  3. 選取 MenuStrip 控制項。

  4. 在屬性視窗中,將 屬性的值 MdiWindowListItem 設定為 ToolStripMenuItem1

  5. 將子專案新增至 [視窗 ] 功能表項目,然後將子專案 命名為 [新增 ]。

  6. 在屬性視窗中,按一下 [ 事件 ]。

  7. 按兩下 Click 事件。

    Windows Forms 設計工具會產生 事件的事件處理常式 Click

  8. 將下列程式碼插入事件處理常式。

    // 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();
    }
    
    ' 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
    

將 ToolStripPanel 控制項新增至工具箱

當您搭配 MDI 表單使用 MenuStrip 控制項時,必須具有 ToolStripPanel 控制項。 您必須將 ToolStripPanel 控制項新增至 工具箱 ,才能在 Windows Forms 設計工具中建置 MDI 表單。

  1. 開啟 [ 工具箱 ],然後按一下 [ 所有 Windows Forms] 索引標籤以顯示可用的 Windows Forms 控制項。

  2. 以滑鼠右鍵按一下以開啟快捷方式功能表,然後選取 [ 選擇專案 ]。

  3. 在 [ 選擇工具箱專案 ] 對話方塊中,向下 捲動 [名稱 ] 資料行,直到您找到 ToolStripPanel 為止。

  4. ToolStripPanel 選取核取方塊,然後按一下 [ 確定 ]。

    控制項 ToolStripPanel 會出現在 [工具箱 ] 中

建立子表單

在此程式中,您將定義具有其本身 MenuStrip 控制項的個別子表單類別。 此表單的功能表項目會與父表單的功能表項目合併。

  1. 將名為 ChildForm 的新表單新增至專案。

    如需詳細資訊,請參閱 如何:將 Windows Forms 新增至專案

  2. 從 [ 工具箱] MenuStrip 將控制項拖曳到子表單上。

  3. MenuStrip按一下控制項的設計工具動作圖像 ( Small black arrow ),然後選取 [ 編輯專案 ]。

  4. 在 [ 專案集合編輯器] 對話方塊中,將名為 ChildMenuItem 的新 ToolStripMenuItem 新增至子功能表。

    如需詳細資訊,請參閱 ToolStrip Items 集合編輯器

測試表單

  1. F5 編譯並執行您的表單。

  2. 按一下 [ 視窗 ] 功能表項目以開啟功能表,然後按一下 [ 新增 ]。

    新的子表單會在表單的 MDI 工作區中建立。 子表單的功能表會與主功能表合併。

  3. 關閉子表單。

    子表單的功能表會從主功能表移除。

  4. 按一下 [ 新增 ] 幾次。

    子表單會自動列在 [視窗 ] 功能表項目下,因為 MenuStrip 已指派控制項的 MdiWindowListItem 屬性。

新增 ToolStrip 支援

在此程式中,您會將四 ToolStrip 個控制項新增至 MDI 父表單。 每個 ToolStrip 控制項都會新增至控制項內 ToolStripPanel ,該控制項會固定在表單邊緣。

  1. 從 [ 工具箱] ToolStripPanel 將控制項拖曳到表單上。

  2. 選取控制項後 ToolStripPanel ,按兩下 ToolStrip [工具箱 ] 中的 控制項。

    ToolStrip控制項會在 控制項中 ToolStripPanel 建立。

  3. 選取 ToolStripPanel 控制項。

  4. 在屬性視窗中,將 控制項的 Dock 屬性值變更為 Left

    控制項 ToolStripPanel 停駐在表單左側的主功能表下方。 MDI 工作區會調整大小以符合 ToolStripPanel 控制項。

  5. 重複步驟 1 到 4。

    將新 ToolStripPanel 控制項停駐在表單頂端。

    控制項 ToolStripPanel 停駐在主功能表下方,但停駐在第一個 ToolStripPanel 控制項右邊。 此步驟說明正確定位 ToolStripPanel 控制項中 z 順序的重要性。

  6. 針對另外 ToolStripPanel 兩個控制項重複步驟 1 到 4。

    將新 ToolStripPanel 控制項停駐在表單的右邊和底部。

依 Z 順序排列 ToolStripPanel 控制項

停駐 ToolStripPanel 控制項在 MDI 表單上的位置取決於控制項在迭置順序中的位置。 您可以在 [檔大綱] 視窗中輕鬆排列控制項的迭置順序。

  1. 在 [ 檢視] 功能表中,按一下 [其他視窗 ],然後按一下 [ 檔大綱 ]。

    上一個程式中控制項 ToolStripPanel 的相片順序為非標準。 這是因為迭置順序不正確。 使用 [檔大綱] 視窗來變更控制項的迭置順序。

  2. 在 [檔大綱] 視窗中,選取 [ToolStripPanel4 ]。

  3. 重複按一下向下箭號按鈕,直到 ToolStripPanel4 位於清單底部為止。

    ToolStripPanel4 控制項停駐在表單底部,位於其他控制項底下。

  4. 選取 [ToolStripPanel2 ]。

  5. 按一下向下箭號按鈕一次,將控制項放在清單中的第三個位置。

    ToolStripPanel2 控制項會停駐在表單頂端、主功能表下方,以及其他控制項上方。

  6. 在 [ 檔大綱] 視窗中選取各種控制項,並將其移至迭置順序中的不同位置。 請注意停駐控制項放置迭置順序的效果。 使用 [編輯 ] 功能表上的 CTRL-Z 或 [復原] 來復原您的變更。

檢查點 - 測試表單

  1. F5 編譯並執行您的表單。

  2. 按一下控制項的 ToolStrip 框線,並將控制項拖曳至表單上的不同位置。

    您可以將控制項從一個控制項拖曳 ToolStrip 到另一個 ToolStripPanel 控制項。

下一步

在本逐步解說中,您已建立具有控制項和功能表合併的 ToolStrip MDI 父表單。 您可以針對許多其他用途使用 ToolStrip 控制項系列:

另請參閱