Articles in this section
Category / Section

How to programmatically dock the XPMenus bar in WinForms CommandBar?

1 min read

Dock the XPMenus bar

The XPMenus bar cannot be docked directly since it is not of the type control. So first, get the CommandBar that hosts this bar using the MainFrameBarManager’s GetBarControl method and then dock this CommandBar like any other dockable control. Please refer the below code snippet which illustrates this:

C#

CommandBar cmdbar = this.mainFrameBarManager1.GetBarControl(this.bar1);
cmdbar.DockState = CommandBarDockState.Left;
this.RecalcBarLayout(cmdbar);
Private void RecalcBarLayout(CommandBar cmdbar)
{
   // Call method RedockIfNeeded
   MethodInfo mInfo = typeof(CommandBar).GetMethod("RedockIfNeeded", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.NonPublic);
   if (mInfo != null)
   {
      mInfo.Invoke(cmdbar, new object[] { });
   }
   // Call method OnCommandBarStateChanged
   mInfo = typeof(CommandBar).GetMethod("OnCommandBarStateChanged", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.NonPublic);
   if (mInfo != null)
   {
      mInfo.Invoke(cmdbar, new object[] { EventArgs.Empty });
   }
}

VB

Dim cmdbar As CommandBar = MainFrameBarManager1.GetBarControl(Bar1)
cmdbar.DockState = CommandBarDockState.Left
Me.RecalcBarLayout(cmdbar)
Private Sub RecalcBarLayout(ByVal cmdbar As CommandBar)
   ' Call method RedockIfNeeded
   Dim mInfo As MethodInfo = GetType(CommandBar).GetMethod("RedockIfNeeded", BindingFlags.Instance Or BindingFlags.InvokeMethod Or BindingFlags.NonPublic)
   If Not mInfo Is Nothing Then
       mInfo.Invoke(cmdbar, New Object() {})
   End If
   ' Call method OnCommandBarStateChanged
   mInfo = GetType(CommandBar).GetMethod("OnCommandBarStateChanged", BindingFlags.Instance Or BindingFlags.InvokeMethod Or BindingFlags.NonPublic)
   If Not mInfo Is Nothing Then
       mInfo.Invoke(cmdbar, New Object() {EventArgs.Empty})
   End If
End Sub

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied