Hi Dave,
Sorry for the delay. I have created a sample that implements your desired behavior except step 7. In my sample, I have modified step 7 and loaded the dock state of the control only when it is launched. This way it is not necessary to load all the controls'' dock states first, hide them and then open controls in their corresponding saved location.
I am putting forth your desired scenario here:
1. User starts app. LoadDockState() does not execute because there is no previous state info.
2. User clicks btn1 to create Ctrl1, which is docked in a default location.
3. User clicks btn2 to create Ctrl2, which is docked in a default location
4. User repositions Ctrl1 & Ctrl2 to some non-default location/dock state.
5. User clicks save, which successfully calls SaveDockState().
6. User closes app.
7. User restarts app. LoadDockState() successfully loads previous state into DockingManager.
8. User clicks btn1 which creates Ctrl1 *in the location/dock state from the saved state info*.
You could use the statement
this.dockingManager1.LoadDockState(serializer,[Any Control]);
to load a particular dock state information from the saved file. And also you could avoid the flickering by inserting the LoadDockState() between the LockHostFormUpdate and UnlockHostFormUpdate methods.
Please take a look at the attached sample. I hope this helps you. If not, could you please modify this attached sample and send it over to me? let me know the version number of Essential Studio 4.1 currently you are using. Please let me know if you have any questions.
Thanks for using Syncfusion products.
Regards,
Vijay
Test Sample