Articles in this section

How to programmatically dock the XPMenus bar in WinForms CommandBar?

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)
Access denied
Access denied