0

我正在使用 Infragistics NetAdvantage WinForms bundle (v 2012 2) 中的 UltraToolbarsManager 在现有WinForm 应用程序中引入功能区工具栏。

我在主 MDI 容器窗体中设置了主功能区,然后在子窗体内的管理器中设置了一个附加功能区。
MdiMergeable 属性在两种形式中都设置为 true。

子窗体设置为填充 MDI 父级中的所有可用区域:
- FormBorderStyle = FormBorderStyle.None
- Dock = DockStyle.Fill
- 无控制框

问题是,当我显示()我的子表单时,它占据了所有区域,工具栏正确合并,但我看到了表单边框。当我双击窗体的顶部边框时,边框消失并且 MDI 子项正确显示(或者,更好,如我所愿)。

如果我以这种方式更改表单样式:
Dock = DockStyle.Fill =>WindowState = FormWindowState.Maximized

表格顶部位于功能区下方,部分被它隐藏。

4

2 回答 2

1

如果您不将 Dock 设置为 DockStyle.Fill,则不会出现表单边框显示的问题,并且窗口在最大化时仍将占据 MDI 父级的整个区域。

除非您有设置 DockStyle.Fill 的特定原因,否则我建议您将其保留为 DockStyle.None。

请注意,如果您删除功能区并在其位置使用 Microsoft MenuStrip,您将看到类似的行为,因此功能区似乎不会影响此行为。

于 2013-03-15T19:19:10.320 回答
0

设置以下属性:

  • FormBorderStyle = FormBorderStyle.None
  • Dock = DockStyle.None

在表单对象构造期间并推迟到显示(Layout事件)之前此设置:

  • WindowState = FormWindowState.Maximized

并且表格正确显示。

我认为,当我在表单对象的构造过程中设置此值时,MDI 子可用区域没有考虑功能区占用的空间(可能在功能区占用部分空间之前评估可用区域)。
当我将设置推迟WindowState = FormWindowState.Maximized到 Layout 事件时,MDI 子可用区域会考虑到功能区占用的空间。

于 2013-03-20T09:01:36.737 回答