2013-03-13 51 views
0

我使用Infragistics NetAdvantage WinForms软件包(v 2012 2)的UltraToolbarsManager在现有的 WinForm应用程序中引入功能区工具栏。Infragistics功能区遍历最大化的MDI子代

我在主MDI容器窗体中设置了主色带,然后在子窗体中的管理器中设置了另一个色带。
这两种形式的MdiMergeable属性都设置为true。

子窗体的成立填补所有可用的面积在MDI父:
- FormBorderStyle = FormBorderStyle.None
- Dock = DockStyle.Fill
- 没有控制箱

的问题是,当我告诉()我的孩子形成它采取所有区域,工具栏合并正确,但我看到窗体边框。当我双击窗体的顶部边框时,边框消失,并且MDI子显示正确(或更好,如我所愿)。

如果更改形式造型这种方式:
Dock = DockStyle.Fill =>WindowState = FormWindowState.Maximized

形式顶部进入色带下和它的部分地由它隐藏。

+0

是否有一个特定的原因为什么你将DockStyle设置为DockStyle.Fill? – alhalama 2013-03-15 19:19:36

+0

我必须填写所有的MDI儿童可用区域,我想我有两种方法:填充或最大化。其实都不起作用。 – 2013-03-20 08:48:13

+0

我相信对于最大化MDI孩子更合适,可能是你想要的行为。如果要么导致它落在父母的背后,那么我需要关于这个问题的更多细节,因为我无法再现这一点。色带是否最小化?你能提供足够的代码来重现问题吗?还有什么是您参考的Infragistics程序集的确切版本? – alhalama 2013-03-20 15:01:35

回答

0

设置下列属性:

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

在形式对象构造和推迟到刚显示前(在Layout事件)本设定:

  • WindowState = FormWindowState.Maximized

然后窗体显示正确。

我认为,当我在构建表单对象的过程中设置这个值时,MDI子可用区域不考虑该功能区占用的空间(也许可用区域在功能区占用部分它)。
当我将WindowState = FormWindowState.Maximized的设置推迟到Layout事件时,MDI子可用区域会考虑功能区占用的空间。

1

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

除非你有设置DockStyle.Fill的特定原因,否则我会建议让它停靠DockStyle.None。

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

+0

我用None代替了填充DockStyle属性,正如你所说(所以+1)并使用了FormWindowState.Maximized。但问题中强调的最后一个问题仍然存在。 – 2013-03-20 08:54:03