次の方法で共有


MenuItem.MergeMenu メソッド (MenuItem)

別のメニュー項目とこのメニュー項目をマージします。

Overloads Public Sub MergeMenu( _
   ByVal itemSrc As MenuItem _)
[C#]
public void MergeMenu(MenuItemitemSrc);
[C++]
public: void MergeMenu(MenuItem* itemSrc);
[JScript]
public function MergeMenu(
   itemSrc : MenuItem);

パラメータ

  • itemSrc
    このメニュー項目とマージするメニュー項目を指定する MenuItem

解説

メニュー項目は、その MergeType プロパティと MergeOrder プロパティの値に従ってマージされます。このバージョンの MergeMenu メソッドを使用すると、2 つの MenuItem オブジェクト (およびそのサブメニュー) をマージして単一のメニューを作成できます。マルチ ドキュメント インターフェイス (MDI) 親フォームと子フォームの両方にメニューがある場合、メニューのマージは自動的に処理されます。このバージョンのメソッドを使用すると、 MainMenu コントロール内の 2 つの MenuItem オブジェクト (およびそのサブメニュー項目) を ContextMenu 内の単一のメニューにマージできます。たとえば、このバージョンの MergeMenu メソッドを呼び出して [ファイル] メニューと [編集] メニューの項目を単一の MenuItem にマージし、 ContextMenu に追加して表示できます。

使用例

[Visual Basic, C#, C++] このバージョンの MergeMenu メソッドを使用して MenuItem のコピーを作成し、そのコピーを別のメニュー項目にマージする例を次に示します。マージ後の MenuItem は、その後 ContextMenu コントロールに追加されます。この例は、サブメニュー項目を含んでいる 2 つのメニュー項目 menuItem1 および menuItem2 があり、これらのメニュー項目を表示する contextMenu1 という名前の ContextMenu があることを前提にしています。 menuItem1menuItem2 には、異なるメニュー項目が格納されています。 MergeMenu が呼び出された後で、統合されたメニューが作成されます。

 
Private Sub MergeMyMenus()
    ' Set the merge type to merge the items from both top menu items.
    menuItem1.MergeType = MenuMerge.MergeItems
    menuItem2.MergeType = MenuMerge.MergeItems
    ' Create a copy of my menu item.
    Dim tempMenuItem As New MenuItem()
    ' Create a copy of menuItem1 before doing the merge.
    tempMenuItem = menuItem1.CloneMenu()
    ' Merge menuItem1's copy with a clone of menuItem2
    tempMenuItem.MergeMenu(menuItem2.CloneMenu())
       
    ' Add the merged menu to the ContextMenu control.
    contextMenu1.MenuItems.Add(tempMenuItem)
End Sub


[C#] 
private void MergeMyMenus()
{
   // Set the merge type to merge the items from both top menu items.
   menuItem1.MergeType = MenuMerge.MergeItems;
   menuItem2.MergeType = MenuMerge.MergeItems;
   // Create a copy of my menu item.
   MenuItem tempMenuItem = new MenuItem();
   // Create a copy of menuItem1 before doing the merge.
   tempMenuItem = menuItem1.CloneMenu();
   // Merge menuItem1's copy with a clone of menuItem2
   tempMenuItem.MergeMenu(menuItem2.CloneMenu());

   // Add the merged menu to the ContextMenu control.
   contextMenu1.MenuItems.Add(tempMenuItem);
}


[C++] 
private:
 void MergeMyMenus()
 {
    // Set the merge type to merge the items from both top menu items.
    menuItem1->MergeType = MenuMerge::MergeItems;
    menuItem2->MergeType = MenuMerge::MergeItems;
    // Create a copy of my menu item.
    MenuItem* tempMenuItem = new MenuItem();
    // Create a copy of menuItem1 before doing the merge.
    tempMenuItem = menuItem1->CloneMenu();
    // Merge menuItem1's copy with a clone of menuItem2
    tempMenuItem->MergeMenu(menuItem2->CloneMenu());
 
    // Add the merged menu to the ContextMenu control.
    contextMenu1->MenuItems->Add(tempMenuItem);
 }

[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 ファミリ

参照

MenuItem クラス | MenuItem メンバ | System.Windows.Forms 名前空間 | MenuItem.MergeMenu オーバーロードの一覧