ToolStripManager.Merge 方法

定義

結合 ToolStrip 控制項。

多載

Merge(ToolStrip, String)

結合相同型別的兩個 ToolStrip 物件。

Merge(ToolStrip, ToolStrip)

結合不同型別的兩個 ToolStrip 物件。

Merge(ToolStrip, String)

結合相同型別的兩個 ToolStrip 物件。

public:
 static bool Merge(System::Windows::Forms::ToolStrip ^ sourceToolStrip, System::String ^ targetName);
public static bool Merge (System.Windows.Forms.ToolStrip sourceToolStrip, string targetName);
static member Merge : System.Windows.Forms.ToolStrip * string -> bool
Public Shared Function Merge (sourceToolStrip As ToolStrip, targetName As String) As Boolean

參數

sourceToolStrip
ToolStrip

要與 targetName 參數所參考的 ToolStrip 結合的 ToolStrip

targetName
String

收到 sourceToolStrip 參數所參考的 ToolStripToolStrip 名稱。

傳回

Boolean

如果合併成功,則為 true,否則為 false

例外狀況

sourceToolStriptargetNamenull

sourceToolStriptargetName即為相同的 ToolStrip

備註

ToolStripManager.Merge使用 方法來結合 ToolStrip 相同類型的物件,例如 ToolStrip 物件與其他 ToolStrip 物件、 MenuStrip 物件與其他 MenuStrip 物件等等。

ToolStripManager.Merge使用 方法來結合 ToolStrip 不同類型的物件。

屬性 ToolStrip.AllowMerge 必須同時設定 trueToolStrip 物件,而且來源和目標型別必須相同,否則這個方法會傳 false 回 。

注意

如果 MDI 子表單上有兩 MenuStrip 個控制項,則父表單的 設定 IsMdiContainer true 為 只會合並其中一個 MenuStrip 控制項的內容。 用來 Merge 合併 MDI 父表單上其他子 MenuStrip 控制項的內容。

另請參閱

適用於

Merge(ToolStrip, ToolStrip)

結合不同型別的兩個 ToolStrip 物件。

public:
 static bool Merge(System::Windows::Forms::ToolStrip ^ sourceToolStrip, System::Windows::Forms::ToolStrip ^ targetToolStrip);
public static bool Merge (System.Windows.Forms.ToolStrip sourceToolStrip, System.Windows.Forms.ToolStrip targetToolStrip);
static member Merge : System.Windows.Forms.ToolStrip * System.Windows.Forms.ToolStrip -> bool
Public Shared Function Merge (sourceToolStrip As ToolStrip, targetToolStrip As ToolStrip) As Boolean

參數

sourceToolStrip
ToolStrip

要與 targetToolStrip 參數所參考的 ToolStrip 結合的 ToolStrip

targetToolStrip
ToolStrip

收到由 sourceToolStrip 參數所參考的 ToolStripToolStrip

傳回

Boolean

如果合併成功,則為 true,否則為 false

範例

下列程式碼範例會根據指定的選項合併功能表項目。 此範例是類別概觀中較大範例的 ToolStripManager 一部分。

private MergeSample CurrentSample
{
    get { return currentSample; }
    set
    {
        if (currentSample != value)
        {
            bool resetRequired = false;

            if (currentSample == MergeSample.MatchOnly)
            {
                resetRequired = true;
            }
            currentSample = value;
            // Undo previous merge, if any.
            ToolStripManager.RevertMerge(cmsBase, cmsItemsToMerge);
            if (resetRequired)
            {
                RebuildItemsToMerge();
            }

            switch (currentSample)
            {
                case MergeSample.None:
                    return;
                case MergeSample.Append:
                    ScenarioText = "This sample adds items to the end of the list using MergeAction.Append.\r\n\r\nThis is the default setting for MergeAction. A typical scenario is adding menu items to the end of the menu when some part of the program is activated.";
                    ShowAppendSample();
                    break;
                case MergeSample.InsertInSameLocation:
                    ScenarioText = "This sample adds items to the middle of the list using MergeAction.Insert.\r\n\r\nNotice here how the items are added in reverse order: four, three, two, one. This is because they all have the same merge index.\r\n\r\nA typical scenario is adding menu items to the middle or beginning of the menu when some part of the program is activated. ";
                    ShowInsertInSameLocationSample();
                    break;
                case MergeSample.InsertInSameLocationPreservingOrder:
                    ScenarioText = "This sample is the same as InsertInSameLocation, except the items are added in normal order by increasing the MergeIndex of \"two merged items\" to be 3, \"three merged items\" to be 5, and so on.\r\n  You could also add the original items backwards to the source ContextMenuStrip.";
                    ShowInsertInSameLocationPreservingOrderSample();
                    break;
                case MergeSample.ReplacingItems:
                    ScenarioText = "This sample replaces a menu item using MergeAction.Replace. Use this for the MDI scenario where saving does something completely different.\r\n\r\nMatching is based on the Text property. If there is no text match, merging reverts to MergeIndex.";
                    ShowReplaceSample();
                    break;
                case MergeSample.MatchOnly:
                    ScenarioText = "This sample adds only the subitems from the child to the target ContextMenuStrip.";
                    ShowMatchOnlySample();
                    break;
            }
            // Reapply with the new settings.
            ToolStripManager.Merge(cmsItemsToMerge, cmsBase);
        }
    }
}

Private Property CurrentSample() As MergeSample
   Get
      Return currentSample1
   End Get
   Set
      If currentSample1 <> value Then
         Dim resetRequired As Boolean = False
         
         If currentSample1 = MergeSample.MatchOnly Then
            resetRequired = True
         End If
         currentSample1 = value
         ' Undo previous merge, if any.
         ToolStripManager.RevertMerge(cmsBase, cmsItemsToMerge)
         If resetRequired Then
            RebuildItemsToMerge()
         End If
         
         Select Case currentSample1
            Case MergeSample.None
                  Return
            Case MergeSample.Append
               ScenarioText = "This sample adds items to the end of the list using MergeAction.Append." + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf + "This is the default setting for MergeAction. A typical scenario is adding menu items to the end of the menu when some part of the program is activated."
               ShowAppendSample()
            Case MergeSample.InsertInSameLocation
               ScenarioText = "This sample adds items to the middle of the list using MergeAction.Insert." + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf + "Notice here how the items are added in reverse order: four, three, two, one. This is because they all have the same merge index." + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf + "A typical scenario is adding menu items to the middle or beginning of the menu when some part of the program is activated. "
               ShowInsertInSameLocationSample()
            Case MergeSample.InsertInSameLocationPreservingOrder
               ScenarioText = "This sample is the same as InsertInSameLocation, except the items are added in normal order by increasing the MergeIndex of ""two merged items"" to be 3, ""three merged items"" to be 5, and so on." + ControlChars.Cr + ControlChars.Lf + "  You could also add the original items backwards to the source ContextMenuStrip."
               ShowInsertInSameLocationPreservingOrderSample()
            Case MergeSample.ReplacingItems
               ScenarioText = "This sample replaces a menu item using MergeAction.Replace. Use this for the MDI scenario where saving does something completely different." + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf + "Matching is based on the Text property. If there is no text match, merging reverts to MergeIndex."
               ShowReplaceSample()
            Case MergeSample.MatchOnly
               ScenarioText = "This sample adds only the subitems from the child to the target ContextMenuStrip."
               ShowMatchOnlySample()
         End Select
         
         ' Reapply with the new settings.
         ToolStripManager.Merge(cmsItemsToMerge, cmsBase)
      End If
   End Set
End Property

備註

ToolStripManager.Merge使用 方法來結合 ToolStrip 不同類型的物件。

ToolStripManager.Merge使用 方法來結合 ToolStrip 相同類型的物件,例如 ToolStrip 物件與其他 ToolStrip 物件、 MenuStrip 物件與其他 MenuStrip 物件等等。

ToolStrip.AllowMerge 兩個 ToolStrip 物件都必須將 屬性設定 true 為 ,否則這個方法會傳 false 回 。

注意

如果 MDI 子表單上有兩 MenuStrip 個控制項,則父表單的 設定 IsMdiContainer true 為 只會合並其中一個 MenuStrip 控制項的內容。 用來 Merge 合併 MDI 父表單上其他子 MenuStrip 控制項的內容。

另請參閱

適用於