方法 : MDI ドロップダウン メニューに MenuStrip を挿入する (Windows フォーム)

更新 : 2007 年 11 月

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

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

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

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

  3. トップレベル メニュー項目を Form1MenuStrip に追加し、その Text プロパティを &File に設定します。

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

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

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

  7. トップレベル メニュー項目を Form2MenuStrip に追加し、その Text プロパティを &File に設定します。

  8. Form2 の &File メニューにサブメニュー項目を追加します。追加する順番は、ToolStripSeparator、&Save、&Closeand Save、およびもう 1 つの ToolStripSeparator となります。

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

    Form2 のメニュー項目

    MergeAction の値

    MergeIndex の値

    [ファイル]

    [MatchOnly]

    -1

    [Separator]

    [挿入]

    2

    [上書き保存]

    [挿入]

    3

    [保存して閉じる]

    [挿入]

    4

    [Separator]

    [挿入]

    5

  10. &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
    

    [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();
    }
    
  12. 次のようなコードを &OpenToolStripMenuItem に配置し、イベント ハンドラを登録します。

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

コードのコンパイル方法

この例で必要な要素は次のとおりです。

  • Form1 および Form2 という名前の 2 つの Form コントロール。

  • Form1 上にある menuStrip1 という名前の MenuStrip コントロール、および Form2 上にある menuStrip2 という名前の MenuStrip コントロール。

  • System アセンブリおよび System.Windows.Forms アセンブリへの参照。

参照

処理手順

方法 : MDI 親フォームを作成する

方法 : MDI 子フォームを作成する

参照

MenuStrip コントロールの概要 (Windows フォーム)