假设已有父/子 MDI 窗体。 在每个窗体上都放置了一个 BarManager,并且都创建了一个 Edit 工具栏。 当子 MDI 窗体被激活时,我们想合并这些工具栏 (XtraBars 仅支持自动合并主菜单)。 要达到此目的,则接管 BarManager.Merge 事件。 使用 Bar.Merge 方法合并工具栏。
当子窗体变成非活动时 (例如,焦点可能移向了其他窗体),我们需要恢复父窗体的原有主菜单布局。 为了达到此目的,Bar.UnMerge 方法在 BarManager.UnMerge 事件处理程序中被调用。
C# | 复制代码 |
---|---|
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 Basic | 复制代码 |
---|---|
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 |