共用方式為


逐步解說:使用功能表合併和 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 Form 設計工具中,選取表單。

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

建立主功能表

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

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

  2. ToolStripMenuItem 新增至 MenuStrip 控制項,並將其命名為視窗

  3. 選取 MenuStrip 控制項。

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

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

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

  7. 按兩下 Click 事件。

    Windows Form 設計工具會產生 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 Form 設計工具中建置 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 項目集合編輯器

測試表單

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

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

    新的子表單會在表單的 MDI 用戶端區域中建立。 子表單的功能表會與主功能表合併。

  3. 關閉子表單。

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

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

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

新增 ToolStrip 支援

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

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

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

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

  3. 選取 MenuStrip 控制項。

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

    ToolStripPanel 控制項會固定在表單左側的主功能表下方。 MDI 用戶端區域會重設大小以符合 ToolStripPanel 控制項。

  5. 重複步驟 1 到 4。

    將新的 ToolStripPanel 控制項固定在表單頂端。

    ToolStripPanel 控制項會固定在主功能表下方,但會在第一個 ToolStripPanel 控制項右邊。 此步驟說明正確置放 ToolStripPanel 控制項中堆疊順序的重要性。

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

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

依堆疊順序排列 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 系列:

另請參閱