如何:從 MDI 下拉式功能表移除 ToolStripMenuItem (Windows Form)

在某些應用程式中,多重文件介面 (MDI) 子視窗的類型可能與 MDI 父視窗不同。 例如,MDI 父視窗可能是試算表,而 MDI 子視窗可能是圖表。 在這種情況下,由於已啟動各種不同類型的 MDI 子視窗,因此您需要以 MDI 子視窗功能表的內容更新 MDI 父視窗功能表的內容。

下列程式會使用 IsMdiContainerAllowMergeMergeActionMergeIndex 屬性,從 MDI 父功能表的下拉式清單中移除功能表項目。 關閉 MDI 子視窗會將移除的功能表項目還原至 MDI 父功能表。

從 MDI 下拉式功能表移除 MenuStrip

  1. 建立表單,並將其 IsMdiContainer 屬性設定為 true

  2. MenuStrip 加入 Form1,並將 MenuStripAllowMerge 屬性設定為 true

  3. 將最上層功能表項目加入 Form1MenuStrip,並將其 Text 屬性設定為 &File

  4. 將三個子功能表項目目新增至 &File 功能表項目,並將其屬性設定 Text&Open&Import fromE&xit

  5. 將兩個子功能表項目目新增至 &Import from 子功能表專案,並將其屬性設定 Text&Word&Excel

  6. 將表單加入專案,將 MenuStrip 加入表單,並將 Form2MenuStripAllowMerge 屬性設定為 true

  7. 將最上層功能表項目加入 Form2MenuStrip,並將其 Text 屬性設定為 &File

  8. &Import from將子功能表專案新增至 &FileForm2 功能表,並將子功能表專案新增 &Word&File 功能表。

  9. MergeAction設定功能表項目的 Form2MergeIndex 屬性,如下表所示。

    Form2 功能表項目 MergeAction 值 MergeIndex 值
    檔案 MatchOnly -1
    從 匯入 MatchOnly -1
    Word 移除 -1
  10. 在 中 Form1 ,為 Click 的 事件 &OpenToolStripMenuItem 建立事件處理常式。

  11. 在 事件處理常式中,插入類似下列程式碼範例的程式碼,以建立和顯示 的新實例做為 的 MDI 子 Form1Form2

    Private Sub openToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openToolStripMenuItem.Click  
        Dim NewMDIChild As New Form2()  
        'Set the parent form of the child window.  
            NewMDIChild.MdiParent = Me  
        'Display the new form.  
            NewMDIChild.Show()  
    End Sub  
    
    private void openToolStripMenuItem_Click(object sender, EventArgs e)  
    {  
        Form2 newMDIChild = new Form2();  
        // Set the parent form of the child window.  
            newMDIChild.MdiParent = this;  
        // Display the new form.  
            newMDIChild.Show();  
    }  
    
  12. 將類似下列程式碼範例的程式碼放入 &OpenToolStripMenuItem 之中,以註冊事件處理常式。

    Private Sub openToolStripMenuItem_Click(sender As Object, e As _  
    EventArgs) Handles openToolStripMenuItem.Click  
    
    this.openToolStripMenuItem.Click += new _  
    System.EventHandler(this.openToolStripMenuItem_Click);  
    

編譯程式碼

這個範例需要:

另請參閱