Tool window flickering on Activate()

Docking/MDI for Windows Forms Forum

Posted 17 years ago by Kasper
Version: 2.0.83

In my application, I have around 15 Tool windows, divided into 4 tab groups by default. I need to provide my users with a "Full screen" option, which simply hides all tool windows to maximize the working space. I use Close() to hide them, and the Activate(false) to show them again, once the user wishes to return from full screen mode. Hiding the tool windows causes only a little flickering, which I can live with. However, once the tool windows are all activated, it causes more flickering, and even worse: The content of one of the panels seem to be momentarily painted over my top toolbars, just for a second or so, until the tool window is in the correct place again. I'm working on a pretty highend machine, and I'm worried that users with a less powerful machine will feel this even more. Can anything be done about this? Any tricks? It would be great if the process of showing all the tool windows could be optimized, or if I could at least get rid of the "paint problem". Hope you can help me :)

Comments (3)

Posted 17 years ago by Actipro Software Support - Cleveland, OH, USA
What happens if you call SuspendLayout on the host control before doing this and ResumeLayout afterwards? The problem here is that each time you reactivate a tool window, it's running through the layout for the control hierarchy that is affected.

Actipro Software Support

Posted 17 years ago by Roy Arvenäs - Software Developer, TAT - The Astoning Tribe
I'm having the same problem. when I activate or close a toolwindow, one of my toolwindows are drawn on top of my toolbar (actipro toolbar), then it draws the toolbar on top of the toolwindow and moving the toolwindow below the toolbar again. This creates a rather big flicker.

Only one of my toolwindows have this behaviour though, and so far I have only seen 2 things that is making this toolwindow different from the others, and that is that it is set to
Dock = System::Windows::Forms::DockStyle::Fill; and that it doesn't have a titlebar.

I tried suspending pretty much all controls layout, but that did not result in anything, except a little greater understanding of the problem.

I tried to double check with your dockform example in the example suite , since that has rather the same layout as our application and doesn't behave that way. But this example uses the standard windows toolbar from what I can tell.

It is not always the toolbar that gets "overdrawn", sometimes it is another toolwindow, but only if that window is to the left of the toolwindow with "fill". Sometimes the toolbar is having correct behaviour. My guess it that it depends on the order it draws the different parts.

Any suggestions or ideas?


[Modified at 06/25/2007 09:00 AM]
Posted 17 years ago by Actipro Software Support - Cleveland, OH, USA
Could one of you put together a C# sample project that shows this happening so we could check it out? Then email it to our support address? That would be most appreciated.

Actipro Software Support

The latest build of this product (v24.1.0) was released 4 months ago, which was after the last post in this thread.

Add Comment

Please log in to a validated account to post comments.