The suspend layout method call is not entirely necessary, but it makes the code more efficient because it prevents the sizing logic from being performed while we set up all the panes.
The first objects you will create are the dockable control panes. You need one of these for each of the controls you want to dock. Set up the key for the pane, the title, and which control it should wrap.
Dim dcpTreeView As New DockableControlPane("tree", "Tree View", TreeView1)
Dim dcpListView As New DockableControlPane("list", "List View", ListView1)
Dim dcpRichText As New DockableControlPane("rtb", "Rich Text Box", RichTextBox1)
Next we will set up the group that will contain the ListView and the TreeView. You want the style of the group to be tabs, so you must set the ChildPaneStyle property. Then all you do is add the control panes to the group pane.
Dim dgpTreeList As New DockableGroupPane()
dgpTreeList.ChildPaneStyle = ChildPaneStyle.TabGroup
dgpTreeList.Panes.Add(dcpTreeView)
dgpTreeList.Panes.Add(dcpListView)
The dock area panes are the last objects instantiated. First you create the dock area pane for the left side, and add the group containing the Tree and the List to it. Do the same thing for the rich text box, but dock that one at the bottom.
Dim dapLeft As New DockAreaPane(DockedLocation.DockedLeft)
dapLeft.Panes.Add(dgpTreeList)
Dim dapBottom As New DockAreaPane(DockedLocation.DockedBottom)
dapBottom.Panes.Add(dcpRichText)
To keep the docked windows at the bottom unpinned, unpin it with this code. This creates a problem, however. If you unpin it in code before a size has been set, it will fly-out to a size of 0 pixels. To prevent this, set a new flyout size. You can set the size to 100 pixels in each direction, in case the user decides to move the rich text box to one of the side dock areas.
dcpRichText.Unpin()
dcpRichText.FlyoutSize = New Size(100, 100)
The final step is to let the UltraDockManager know that these panes have been created. The DockAreas are registered by adding them to the DockAreas collection.
UltraDockManager1.DockAreas.Add(dapLeft)
UltraDockManager1.DockAreas.Add(dapBottom)
Now enable the form to perform its layout processing.