Posted 1 September 2022, 5:16 pm EST
We’ve recently switched from our old docking library to using ComponentOne to handle WinForms docking, and I’m hoping someone can help me with a few problems I’m having trouble working out.
We are using version 4.0.20221.548 but I have also confirmed the problems persist in the newest 566 version.
I apologize for the length of this post, but hopefully it will clearly demonstrate the problems. Thanks in advance for any help.
To summarize the problems:
- Docking arrangement of layout changes to the wrong layout when form is resized or other similar action happens
- Layouts are not always restored correctly
- I see the LayoutExclude property, but I’m having trouble using it
Problem #1 is the worst, I have not found a workaround and the users are angry.
Problem #2 workaround is to set all tabs to TabVisible = False as the first step of restoring layout, which doesn’t make it perfect but helps a lot.
Problem #3 workaround is to remember the state of tabs I want excluded, and set them back after restoring layout
I have attached a project to illustrate these problems, and will summarize the steps needed to most easily reproduce the issues. There are also instructions on the main form of the project (the bottom three buttons are the cases that demonstrate problems).
Our users expect to be able to set a wide variety of custom layouts, but I have attached a screenshot of the layout that has caused the most problems for us.
Problem 1 (Docking arrangement changing on resize or similar) is demonstrated in the buttons “Open Layout Resize Problem Test Form” and “Open Layout Resize Problem Test Form 2”.
Click the “Open Layout Resize Problem Test Form”, and on the form that opens click the “Load” button. Maximize the form, and then un-maximize the form. The layout has changed.
Click the “Open Layout Resize Problem Test Form 2”, and on the form that opens click the “Load” button. Resize the form horizontally, and the layout changes significantly.
The layouts for these two forms were created slightly differently, and form 2 is much worse. Unfortunately it is difficult to control how the user makes the layout, and they often choose method 2.
Problem 2 (Layouts are not always restored correctly)
Follow the steps above for problem 1. In the first test form, you can sometimes fix the layout after it breaks by clicking the “Load” button, but in the “Layout Resize Problem Test Form 2”, they layout will not load correctly at all once broken.
Problem 3 (Unable to figure out how to use LayoutExclude)
Click the “Open Layout Exclude Problem Test” button. On the form that opens, click the “Open Float” button, followed by the “Save” button. Close the floating window, then click the “Load” button. The floating window will reopen - I have tried to use the LayoutExclude property to prevent this from happening but have not been successful.
C1DockingTab Test Project.zip[img]https://gccontent.blob.core.windows.net/forum-uploads/file-6d29e254-5338-4dbe-9e65-f92ef0bea217.png[/img]