假设已有父/子 MDI 窗体。 在每个窗体上都放置了一个 BarManager,并且都创建了一个 Edit 工具栏。 当子 MDI 窗体被激活时,我们想合并这些工具栏 (XtraBars 仅支持自动合并主菜单)。 要达到此目的,则接管 BarManager.Merge 事件。 使用 Bar.Merge 方法合并工具栏。

当子窗体变成非活动时 (例如,焦点可能移向了其他窗体),我们需要恢复父窗体的原有主菜单布局。 为了达到此目的,Bar.UnMerge 方法在 BarManager.UnMerge 事件处理程序中被调用。

C#CopyCode image复制代码
using DevExpress.XtraBars;

private void barManager1_Merge(object sender, BarManagerMergeEventArgs e) {
    Bar childBar = e.ChildManager.Bars["Edit"];
    Bar parentBar = barManager1.Bars["Edit"];
    parentBar.Merge(childBar);            
}

private void barManager1_UnMerge(object sender, BarManagerMergeEventArgs e) {
    Bar parentBar = barManager1.Bars["Edit"];
    parentBar.UnMerge();
}

Visual BasicCopyCode image复制代码
Imports DevExpress.XtraBars

Private Sub BarManager1_Merge(ByVal sender As Object, _
  ByVal e As DevExpress.XtraBars.BarManagerMergeEventArgs) Handles BarManager1.Merge
    Dim childBar As Bar = e.ChildManager.Bars("Edit")
    Dim parentBar As Bar = BarManager1.Bars("Edit")
    parentBar.Merge(childBar)
End Sub

Private Sub BarManager1_UnMerge(ByVal sender As Object, _
  ByVal e As DevExpress.XtraBars.BarManagerMergeEventArgs) Handles BarManager1.UnMerge
    Dim parentBar As Bar = BarManager1.Bars("Edit")
    parentBar.UnMerge()
End Sub