m_subForm.ControlBox = false;
What is illegal for the MDI child form, it must have all the window decoration correctly. And in fact, it can be used as an MDI child; it is a window model based on allowing the user to minimize / restore / maximize child windows. The dates of the early 1990s, when monitors still had very low resolutions, so there simply weren’t a lot of screen real estate to display windows.
However, Winforms does not apply this MDI requirement. The height trick was hacked so that the window would draw correctly. It should be noticeable from the flicker that produces.
It makes no sense to specify MDI when you always show the child window as much as possible. You get exactly the same effect, minus the need to fight the MDI control panel by simply replacing the UserControl in and out of the form. Such a UserControl can also be a Form if you set the TopLevel property to false.
source share