次の方法で共有


方法: MDI Drop-Down メニューから ToolStripMenuItem を削除する (Windows フォーム)

一部のアプリケーションでは、マルチドキュメント インターフェイス (MDI) 子ウィンドウの種類が MDI 親ウィンドウとは異なる場合があります。 たとえば、MDI 親がスプレッドシートで、MDI 子がグラフである場合があります。 その場合、MDI 子メニューの内容を MDI 子メニューの内容に更新して、さまざまな種類の MDI 子ウィンドウがアクティブ化されるようにする必要があります。

次の手順では、IsMdiContainerAllowMergeMergeAction、および MergeIndex プロパティを使用して、MDI 親メニューのドロップダウン部分からメニュー項目を削除します。 MDI 子ウィンドウを閉じると、削除されたメニュー項目が MDI 親メニューに復元されます。

MDI ドロップダウン メニューから MenuStrip を削除するには

  1. フォームを作成し、その IsMdiContainer プロパティを trueに設定します。

  2. Form1MenuStrip を追加し、MenuStripAllowMerge プロパティを trueに設定します。

  3. 最上位のメニュー項目を Form1MenuStrip に追加し、その Text プロパティを &Fileに設定します。

  4. &File メニュー項目に 3 つのサブメニュー項目を追加し、その Text プロパティを &Open&Import from、および E&xitに設定します。

  5. 2 つのサブメニュー項目を &Import from サブメニュー項目に追加し、その Text プロパティを &Word および &Excelに設定します。

  6. プロジェクトにフォームを追加し、フォームに MenuStrip を追加し、Form2MenuStripAllowMerge プロパティを trueに設定します。

  7. 最上位のメニュー項目を Form2MenuStrip に追加し、その Text プロパティを &Fileに設定します。

  8. &Import from サブメニュー項目を Form2&File メニューに追加し、&File メニューに &Word サブメニュー項目を追加します。

  9. 次の表に示すように、Form2 メニュー項目の MergeAction プロパティと MergeIndex プロパティを設定します。

    Form2 メニュー項目 MergeAction 値 MergeIndex 値
    ファイル MatchOnly -1
    〜からインポート MatchOnly -1
    言葉 取り去る -1
  10. Form1で、&OpenToolStripMenuItemClick イベントのイベント ハンドラーを作成します。

  11. イベント ハンドラー内で、次のコード例のようなコードを挿入して、Form1の MDI 子として Form2 の新しいインスタンスを作成して表示します。

    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);  
    

コードのコンパイル

この例では、次のものが必要です。

  • Form1Form2という名前の 2 つの Form コントロール。

  • MenuStripForm1 コントロール、menuStrip1という名前のもの、そして MenuStripForm2 コントロール、menuStrip2という名前のもの。

  • System アセンブリと System.Windows.Forms アセンブリへの参照。

関連項目