Hello,
In the current app that I've been working on, I am
getting a flickering at loading time on busy [lots of
controls grouped by using a TabControl] MDI child
windows. This flickering doesn't happen for non-MDI [but
just owned] windows. In other words:
assigning
form.MdiParent = parent;
causes a flickering while the form is being painted for
the first time; whereas:
form.Owner = owner; does not.
Making a more detailed research [by looking at the IL on
System.Windows.Forms] I could tell that the handle for
the child window is being recreated in the
Form.set_MdiParent() method and it seems to me that it is
causing this flickering.
I've tried turning my window into a MDI child one without
using that MdiParent property through direct WinAPI calls
with success [it gets rid of the flickering] but that
breaks .NET's rules and other things start getting messed
up [since a .NET's MDI container caches its children, it
doesn't realize that there is a new MDI child window; and
unfortunately it doesn't expose this cache to its
hierarchy - it can only be seen through IL].
Has anybody experienced this problem? Does Anyone know
about any workaround?
Thank you very much in advance for your reply,
Diego
|