We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Docking Windows Problems

Hello, in my MDI-Application I have got several Docking Windows. When I added the 7th one (a tree) it wasn''t visible in the designer, although the properties (AutoHideOnLoad, etc.) were the same like the other six. After starting the application, I found out that this 7th window was only 10 pixels wide. I couldn''t make it wider, because it had not border. I corrected the width in the Designer to 50 pixels and still can''t see it there. But now it appears in running application. Is there any know bug with more than 6 docking windows ? Furthermore I need the possibility to hide all docking windows, if the user wants, and restore it later. I use the SaveDockState and LoadDockState-Functionality, which works OK. But LoadDockState takes several seconds and causes a lot of flickering. Is there any way to avoid this ? Thanks for the help in advance. Andreas Kostian

5 Replies

AD Administrator Syncfusion Team May 19, 2005 10:01 PM UTC

Hi Andreas, The problem with docking seven controls isn''t a limitation of DockingManager, as much as it''s a limitation of Form size. Eventually DockingManager runs out of room to dock controls and is forced to make them small. Shrinking your controls to the desired size as you add them can help avoid this problem. To hide and show Controls, you should use SetDockVisibility. This prevents you from having to worry about serialization and load times. You can prevent the flicker this causes by using a hard lock on window painting. I have attached a sample that demonstrates these things: f29222_7HidableDockingWindows_1318.zip Please take a look at it and let me know if you have any questions. Regards, Gregory Austin Syncfusion Inc.


AK Andreas Kostian May 20, 2005 08:02 AM UTC

Hi Gregory, thanks for your answer. The LockWindowUpdate() was a good hint. Works quite good. But SetDockVisibility doesn''t seem to be an option for me. I also tried it before. I need the possibility to hide away all docking windows and later to restore them at the exact position and state like they were before. This is because we offer the possibility to the user to maximize his working area with one click. If the user scrolled out one docking window, so he can only see the tab on the left side of the parent window, and then I use SetDockVisibility(..., false) to hide it away and later SetDockVisibility(..., true) to show it again, it will be "scrolled in" again and completely visible. When I use SaveDockState() and LoadDockState() the exact positions and states of the docking windows will be perfectly restored. If there is any faster and/or easier way to do this, I would like to know about it. Thanks again, Andreas Kostian


AD Administrator Syncfusion Team May 20, 2005 10:24 PM UTC

Hi Andreas, If you want to improve performance, you should be able to use the BinaryFmtStream option on AppStateSerializer to serialize to memory, therefore avoiding disk write times. Regards, Gregory Austin Syncfusion Inc.


AK Andreas Kostian June 23, 2005 12:22 PM UTC

Hi Gregory, just found time to check the AppStateSerializer hint. I use binaryFmt and a MemoryStream. But I can see any improvements in Performance. Take about 2-3 seconds to restore the state of the docking windows. Any other idea ? Thanks, Andreas


AD Administrator Syncfusion Team June 23, 2005 03:23 PM UTC

Hi Andreas, Unfortunately, I''m not aware of any other ways to improve LoadDockState performance. It was designed to primarily be used at the beginning of the application, where the load time is not going to stand out as much. Using a MemoryStream likely would help in low memory usage situations, where you can avoid hitting the hard drive. However, if increasing the memory usage will force a paging operation, it wouldn''t save any time. Regards, Gregory Austin Syncfusion Inc.

Loader.
Live Chat Icon For mobile
Up arrow icon