显示MDI子窗体时,会立即显示标题栏。然后正常加载表单。是否有任何方法可以加载表单而不显示标题栏和表单边框。这就是发生的事情......
答案 0 :(得分:3)
我不确定是否会从屏幕截图中看到它。但投诉是熟悉的。 MDI真的不喜欢最大化的子窗口。当您显示一个新的子窗口并使其最大化时,它需要经历一个歌曲和舞蹈。首先,它恢复当前的孩子,使其不再最大化。然后创建新子项并将焦点设置为它。然后最大化它。这些中间步骤是可见的,并且在绘制儿童时可能产生大量的闪烁。你看起来很贵。你无法抑制这幅画。
如果始终显示最大化的MDI子窗口,则MDI是使用的错误表单模型。只需使用一个简单的表单,让孩子'windows'用户控件。您甚至可以通过将其TopLevel属性设置为false来将其转换为控件来挽救当前的子表单。将FormBorderStyle设置为None,将Visible设置为true。
答案 1 :(得分:1)
即使MDI子窗口没有最大化,我也遇到了这个问题,当显示子窗体时,孩子的标题栏会暂时显示。我通过将子窗体的顶部设置为父窗口的高度来解决它,以便在显示窗体时看不到窗体。然后我将孩子的顶部设置为0。
这一直有效,直到我尝试将孩子停靠在父母中,以便在父母的大小发生变化时自动调整孩子的大小。这让我回到原点。我通过向父级添加一个隐藏面板来克服问题,将面板的大小和位置设置为父级MdiClient控件的大小和位置,使面板在显示子级之前可见,并在此时隐藏面板已经完成了。 “不是很漂亮,但它可以解决,直到我能找到更好的解决方法。