HOW TO:從 MDI 下拉式功能表移除 ToolStripMenuItem (Windows Form)
在某些應用程式中,多重文件介面 (MDI) 子視窗的類型可能會與 MDI 父視窗不同。 例如,MDI 父視窗可能是試算表,而 MDI 子視窗則可能是圖表。 在此情形下,您要以 MDI 子視窗功能表的內容更新 MDI 父視窗功能表的內容,因為已啟動各種不同的 MDI 子視窗。
下列程序使用 IsMdiContainer、AllowMerge、MergeAction 和 MergeIndex 屬性,將功能表項目從 MDI 父功能表的下拉式組件中移除。 關閉 MDI 子視窗,會將移除的功能表項目復原至 MDI 父功能表中。
若要將 MenuStrip 從 MDI 下拉式功能表中移除
建立表單,並將其 IsMdiContainer 屬性設定為 true。
加入 MenuStrip 至 Form1,並將 MenuStrip 的 AllowMerge 屬性設定為 true。
將三個子功能表項目加入至 &File 功能表項目,並將其 Text 屬性設為 &Open、&Import from 和 E&xit。
將兩個子功能表項目加入至 &Import from 子功能表項目,並將其 Text 屬性設為 &Word 和 &Excel。
將表單加入至專案,並將 MenuStrip 加入至表單,然後將 Form2 MenuStrip 的 AllowMerge 屬性設定為 true。
將 &Import from 子功能表項目加入至 Form2 的 &File 功能表並且將 &Word 子功能表項目加入至 &File 功能表。
請按照下表所示來設定 Form2 功能表項目的 MergeAction 和 MergeIndex 屬性。
Form2 功能表項目
MergeAction 值
MergeIndex 值
File
MatchOnly
-1
Import from
MatchOnly
-1
Word
Remove
-1
請在 Form1 中,為 &Open ToolStripMenuItem 的 Click 事件建立事件處理常式。
在事件處理常式中,插入類似下列程式碼範例的程式碼,以建立和顯示 Form2 的新執行個體,如同 Form1 的 MDI 子系:
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
[C#]
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(); }
將類似下列程式碼範例的程式碼放入 &Open ToolStripMenuItem 之中,以註冊事件處理常式。
Private Sub openToolStripMenuItem_Click(sender As Object, e As _ EventArgs) Handles openToolStripMenuItem.Click
this.openToolStripMenuItem.Click += new _ System.EventHandler(this.openToolStripMenuItem_Click);
編譯程式碼
這個範例需要:
命名為 Form1 和 Form2 的兩個 Form 控制項。
Form1 上名為 menuStrip1 的 MenuStrip 控制項,以及 Form2 上名為 menuStrip2 的 MenuStrip 控制項。
System 和 System.Windows.Forms 組件的參考。