【问题标题】:Windows MDI Child Form Title BarWindows MDI 子窗体标题栏
【发布时间】:2010-10-15 15:39:30
【问题描述】:

MDI 子窗体在显示时会显示其标题栏片刻。然后表格正常加载。有没有办法在不显示标题栏和表单边框的情况下加载表单。这就是发生的事情......

【问题讨论】:

    标签: winforms load titlebar mdichild


    【解决方案1】:

    不确定我是否从屏幕截图中看到。但这种抱怨是熟悉的。 MDI 真的不喜欢最大化的子窗口。当您显示一个新的子窗口并使其最大化时,它需要通过歌舞。首先它恢复当前的孩子,因此它不再被最大化。然后创建新的孩子并将焦点设置在它上面。然后最大化它。这些中间步骤是可见的,并且在绘制孩子很昂贵时会产生大量的闪烁。你的看起来很贵。你不能压制这幅画。

    如果您总是最大化显示您的 MDI 子窗口,则 MDI 是错误的表单模型。只需使用一个简单的表单,制作子“windows”用户控件。你甚至可以通过将它们的 TopLevel 属性设置为 false 来拯救你当前的子窗体,这会将它们变成控件。将 FormBorderStyle 设置为 None 并将 Visible 设置为 true。

    【讨论】:

    • 谢谢汉斯,我现在更好地理解了这个问题。会尝试你的建议。
    【解决方案2】:

    即使 MDI 子窗口未最大化,我也遇到过这个问题,当显示子窗体时,子标题栏会暂时显示。我通过将子窗体的顶部设置为父窗体的高度来解决它,这样窗体在显示时不可见。然后我将孩子的顶部设置回 0。

    这一直有效,直到我尝试将孩子停靠在父级中,以便在更改父级大小时自动调整子级的大小。这让我回到了原点。这次我通过向父级添加隐藏面板,将面板的大小和位置设置为父级的 MdiClient 控件的大小和位置,使面板在显示子级之前可见,并在此情况下隐藏面板,从而克服了这个问题已经完成了。 '不漂亮,但在我找到更好的解决方法之前它会起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多