Category / Section
How to resolve the application crash when the LoadDockState fails in WinForms Docking Manager?
1 min read
Serailize or de-serialize
When the AppStateSerializer is used in the DockingManager to serialize or de-serialize the docking state, the application may crash due to the LoadDockState returning false. To avoid this kind of application crash, the designer state of the DockingManager or previously working state should be loaded by using LoadDesignerDockState method. The following code example demonstrates the same.
C#
//Save dockstate. m_Stream = new MemoryStream(); AppStateSerializer aser = new AppStateSerializer(SerializeMode.BinaryFmtStream, m_Stream); this.dockingManager1.SaveDockState(aser); aser.PersistNow(); //Load dock state. m_Stream.Seek(0, SeekOrigin.Begin); AppStateSerializer aser = new AppStateSerializer(SerializeMode.BinaryFmtStream, m_Stream); this.dockingManager1.LoadDockState(aser); //If LoadDockState returns false. if (this.dockingManager1.LoadDockState(aser) == false) { this.dockingManager1.ResumeLayout(true); this.dockingManager1.LoadDesignerDockState(); }
VB
'Save dockstate. m_Stream = New MemoryStream() Dim aser As New AppStateSerializer(SerializeMode.BinaryFmtStream, m_Stream) Me.dockingManager1.SaveDockState(aser) aser.PersistNow() 'Load dock state. m_Stream.Seek(0, SeekOrigin.Begin) Dim aser As New AppStateSerializer(SerializeMode.BinaryFmtStream, m_Stream) Me.dockingManager1.LoadDockState(aser) 'If LoadDockState returns false. If Me.dockingManager1.LoadDockState(aser) = False Then Me.dockingManager1.ResumeLayout(True) Me.dockingManager1.LoadDesignerDockState() End If
UG document link: https://help.syncfusion.com/windowsforms/dockingmanager/serialization