By default, when a toolbar is added, the toolbar appears on a separate row. Each toolbar added will then appear under the previous toolbar. However, many times it is useful to dock a toolbar next to another on the same row using code.
In the picture below, you can see that toolbar #2 has been docked next to toolbar #1. This was done using code.
The code below provides a helper function that will dock a toolbar to the right of another, regardless of the order that the toolbars are added. This code will allow you to dock a toolbar next to another whether it is vertical or horizontal.
'Parameters: ' BarToDock - ToolBar to be placed to ' - the RIGHT of another ToolBar ' BarOnLeft - ToolBar that will be on the LEFT side of BarToDock ' VerticalBar - Set to false if the toolbars are docked at the ' top or bottom of the window (horizontal), set to ' true if the toolbars are on the left or right of ' the window (vertical). 'sample usage: ' Dim ToolBar1 As CommandBar, ToolBar2 As CommandBar ' ..........Add controls to toolbars ' DockRightOf ToolBar2, ToolBar1, False Private Sub DockRightOf(BarToDock As CommandBar, _ BarOnLeft As CommandBar, VerticalBar As Boolean) Dim Left As Long Dim Top As Long Dim Right As Long Dim Bottom As Long Dim LeftBar As CommandBar Set LeftBar = BarOnLeft CommandBars.RecalcLayout BarOnLeft.GetWindowRect Left, Top, Right, Bottom LeftBar.GetWindowRect Left, Top, Right, Bottom If (VerticalBar = False) Then CommandBars.DockToolBar BarToDock, Right, _ (Bottom + Top) / 2, LeftBar.Position Else CommandBars.DockToolBar BarToDock, (Left + Right) _ / 2, Bottom, LeftBar.Position End If End Sub
/* Parameters: BarToDock - ToolBar to be placed to the RIGHT of another ToolBar BarOnLeft - ToolBar that will be on the LEFT side of BarToDock VerticalBar - Set to false if the toolbars are docked at the top or bottom of the window (horizontal), set to true if the toolbars are on the left or right of the window (vertical) Sample usage: XtremeCommandBars.CommandBar ToolBar1, ToolBar2; //..........Add controls to toolbars DockRightOf(ToolBar2, ToolBar1, false); */ private void DockRightOf(XtremeCommandBars.CommandBar BarToDock, XtremeCommandBars.CommandBar BarOnLeft, Boolean VerticalBar) { int left, top, right, bottom; XtremeCommandBars.CommandBar LeftBar = BarOnLeft; CommandBars.RecalcLayout(); LeftBar.GetWindowRect(out left, out top, out right, out bottom); if (VerticalBar == false) CommandBars.DockToolBar(BarToDock, right, (bottom + top) / 2, LeftBar.Position); else CommandBars.DockToolBar(BarToDock, (left + right) / 2, Bottom, LeftBar.Position); }
User Comments
No comments yet, sign in to comment.