我正在使用Infragistics NetAdvantage WinForms软件包(v 2012 2)中的UltraToolbarsManager在现有 WinForm应用程序中引入功能区工具栏。
我在主MDI容器表单中设置主色带,然后在子窗体内的管理器中设置另一个色带。
两种形式的MdiMergeable属性都设置为true。
设置子表单以填充MDI父级中的所有可用区域:
- FormBorderStyle = FormBorderStyle.None
- Dock = DockStyle.Fill
- 没有控制箱
问题在于,当我显示()我的子表单时,它占用了所有区域,工具栏正确合并,但我看到了表单边框。当我双击表单的顶部边框时,边框消失,MDI子项正确显示(或者,更好,我想要)。
如果我以这种方式更改表单样式:
Dock = DockStyle.Fill
=> WindowState = FormWindowState.Maximized
表单顶部位于功能区下方,并且部分隐藏了它。
答案 0 :(得分:1)
如果没有将Dock设置为DockStyle.Fill,则窗体边框显示的问题不存在,并且当窗口最大化时,窗口仍然会占用MDI父窗口的整个区域。
除非你有特定的理由设置DockStyle.Fill我建议保留DockStyle.None。
请注意,如果删除功能区并在其位置使用Microsoft MenuStrip,则会看到类似的行为,因此功能区似乎不会影响此行为。
答案 1 :(得分:0)
设置以下属性:
FormBorderStyle = FormBorderStyle.None
Dock = DockStyle.None
在表单对象构造期间和推迟到显示之前(Layout
事件)此设置:
WindowState = FormWindowState.Maximized
表格正确显示。
我认为,当我在构造表单对象期间设置此值时,MDI子可用区域不会考虑功能区占用的空间(可能在功能区占用部分功能之前评估可用区域) )。
当我将WindowState = FormWindowState.Maximized
的设置推迟到布局事件时,MDI子可用区域会考虑功能区占用的空间。