How to get or set the docking state for a docked control on loading the application in WinForms Docking Manager?
Docking state
Before closing a docked/floating control, access the control’s parent and cast this to type Syncfusion.Windows.Forms.Tools.DockHost. Now access the DockHost’s InternalController and get its current serialization information through the GetSerCurrInfo() method.
This will return an object of type Syncfusion.Windows.Forms.Tools.DockInfo. The DockInfo.DockingStyle member gives the dock position of the particular control with respect to the host form and the DockInfo.rcDockArea member returns the control bounds.
If the control is floating, then DockingStyle will be equal to Syncfusion.Windows.Forms.Tools.DockingStyle.Fill.
You can serialize this information against the control’s name, and later upon loading, appropriately use either the DockingManager.DockControl() / FloatControl() method based on the serialized DockingStyle/rcbounds values to set the control’s dock state.
Please refer to the code sample below which shows how the DockInfo object can be captured:
C#
// Suppose listView1 is the dockable control Syncfusion.Windows.Forms.Tools.DockHost dhost = this.listView1.Parent as Syncfusion.Windows.Forms.Tools.DockHost; Syncfusion.Windows.Forms.Tools.DockHostController dhc = dhost.InternalController as Syncfusion.Windows.Forms.Tools.DockHostController; Syncfusion.Windows.Forms.Tools.DockInfo di = dhc.GetSerCurrentDI();
VB
' Suppose listView1 is the dockable control Dim dhost As Syncfusion.Windows.Forms.Tools.DockHost = Me.listView1.Parent as Syncfusion.Windows.Forms.Tools.DockHost Dim dhc As Syncfusion.Windows.Forms.Tools.DockHostController = dhost.InternalController as Syncfusion.Windows.Forms.Tools.DockHostController Dim di As Syncfusion.Windows.Forms.Tools.DockInfo = dhc.GetSerCurrentDI()