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对象、MenuStrip对象与其他对象等MenuStrip)组合在一起ToolStrip

ToolStripManager.Merge使用该方法合并ToolStrip不同类型的对象。

ToolStrip.AllowMerge必须为这两个ToolStrip对象设置true属性,并且源和目标类型必须相同,否则此方法返回false

备注

如果 MDI 子窗体上有两MenuStrip个控件,则父窗体的设置trueIsMdiContainer仅合并其中一个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对象、MenuStrip对象与其他对象等MenuStrip)组合在一起ToolStrip

必须为ToolStrip.AllowMerge这两个ToolStrip对象设置true该属性,否则此方法返回false

备注

如果 MDI 子窗体上有两MenuStrip个控件,则父窗体的设置trueIsMdiContainer仅合并其中一个MenuStrip控件的内容。 用于 Merge 合并 MDI 父窗体上其他子 MenuStrip 控件的内容。

另请参阅

适用于