次の方法で共有


Menu.MergeMenu メソッド

1 つのメニューの MenuItem オブジェクトを現在のメニューにマージします。

Public Overridable Sub MergeMenu( _
   ByVal menuSrc As Menu _)
[C#]
public virtual void MergeMenu(MenumenuSrc);
[C++]
public: virtual void MergeMenu(Menu* menuSrc);
[JScript]
public function MergeMenu(
   menuSrc : Menu);

パラメータ

  • menuSrc
    現在のメニューのメニュー項目にメニュー項目がマージされている Menu

例外

例外の種類 条件
Exception メニューがそのメニュー自体にマージされました。

解説

このメソッドは、1 つのメニューからの MenuItem オブジェクトを現在のメニューにマージします。 MenuItem オブジェクトは、 MenuItem.MergeType プロパティと MenuItem.MergeOrder プロパティの値に応じてマージされます。

通常、メニューのマージは、マルチ ドキュメント インターフェイス (MDI) 親フォームのメニューをアクティブな MDI 子フォームのメニューにマージするために行われます。これは .NET Framework 共通言語ランタイムによって自動的に実行されます。たとえば、MDI 親フォームにファイル処理のメニューのセットが格納されていて、MDI 子フォームにもファイル関連のメニュー項目がある場合、このメニュー セットは子フォームが MDI 親フォームに表示されるとき自動的に 1 つのファイル メニュー セットにマージされます。

MDI アプリケーションの一部ではない 2 つのメニュー構造をマージする場合は、 MergeMenu メソッドが使用できます。この実装は、 Menu から派生した 2 つ以上のオブジェクトをマージするために、 MainMenu クラスまたは ContextMenu クラスによって呼び出すことができます。

2 つの MenuItem オブジェクトをマージするには、 MenuItem.MergeMenu メソッドを使用します。

使用例

[Visual Basic, C#, C++] この例では、2 つのメニュー、 mainMenu1 および mainMenu2 を作成します。最初のメニューには 1 つの MenuItem 、File が含まれ、2 番目のメニューには 1 つの MenuItem 、Edit が含まれます。 MergeMenu メソッドを使用して、 mainMenu2mainMenu1 にマージされます。表示されたとき、 mainMenu1 には 2 つのメニュー項目、 FileEdit が含まれます。この例は、 Form1 という名前の Form を作成済みであることを前提にしています。

 
Private Sub InitializeMyMainMenu()
    ' Create the 2 menus and the menu items to add.
    Dim mainMenu1 As New MainMenu()
    Dim mainMenu2 As New MainMenu()

    Dim menuItem1 As New MenuItem()
    Dim menuItem2 As New MenuItem()

    ' Set the caption for the menu items.
    menuItem1.Text = "File"
    menuItem2.Text = "Edit"

    ' Add a menu item to each menu for displaying.
    mainMenu1.MenuItems.Add(menuItem1)
    mainMenu2.MenuItems.Add(menuItem2)

    ' Merge mainMenu2 with mainMenu1
    mainMenu1.MergeMenu(mainMenu2)

    ' Assign mainMenu1 to the form.
    Me.Menu = mainMenu1
End Sub 'InitializeMyMainMenu

[C#] 
private void InitializeMyMainMenu()
{
    // Create the 2 menus and the menu items to add.
    MainMenu mainMenu1 = new MainMenu();
    MainMenu mainMenu2 = new MainMenu();

    MenuItem menuItem1 = new MenuItem();
    MenuItem menuItem2 = new MenuItem();
  
    // Set the caption for the menu items.
    menuItem1.Text = "File";
    menuItem2.Text = "Edit";

    // Add a menu item to each menu for displaying.
    mainMenu1.MenuItems.Add(menuItem1);
    mainMenu2.MenuItems.Add(menuItem2);

    // Merge mainMenu2 with mainMenu1
    mainMenu1.MergeMenu(mainMenu2);

    // Assign mainMenu1 to the form.
    this.Menu = mainMenu1;
}

[C++] 
private:
    void InitializeMyMainMenu() {
        // Create the 2 menus and the menu items to add.
        MainMenu* mainMenu1 = new MainMenu();
        MainMenu* mainMenu2 = new MainMenu();

        MenuItem* menuItem1 = new MenuItem();
        MenuItem* menuItem2 = new MenuItem();

        // Set the caption for the menu items.
        menuItem1->Text = S"File";
        menuItem2->Text = S"Edit";

        // Add a menu item to each menu for displaying.
        mainMenu1->MenuItems->Add(menuItem1);
        mainMenu2->MenuItems->Add(menuItem2);

        // Merge mainMenu2 with mainMenu1
        mainMenu1->MergeMenu(mainMenu2);

        // Assign mainMenu1 to the form.
        this->Menu = mainMenu1;
    }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

Menu クラス | Menu メンバ | System.Windows.Forms 名前空間 | MenuItem.MergeType | MenuItem.MergeOrder