Winforms Infragistics功能区覆盖最大化MDI子对象
我正在使用Infragistics NetAdvantage WinForms捆绑包(v 2012 2)中的UltraToolbarsManager在现有的WinForm应用程序中引入功能区工具栏 我在主MDI容器窗体中设置主功能区,然后在子窗体内的管理器中设置附加功能区。Winforms Infragistics功能区覆盖最大化MDI子对象,winforms,layout,ribbon,infragistics,mdi,Winforms,Layout,Ribbon,Infragistics,Mdi,我正在使用Infragistics NetAdvantage WinForms捆绑包(v 2012 2)中的UltraToolbarsManager在现有的WinForm应用程序中引入功能区工具栏 我在主MDI容器窗体中设置主功能区,然后在子窗体内的管理器中设置附加功能区。 MdiMergeable属性在两种形式中都设置为true 子窗体设置为填充MDI父窗体中的所有可用区域: -FormBorderStyle=FormBorderStyle.None -Dock=DockStyle.Fill
MdiMergeable属性在两种形式中都设置为true 子窗体设置为填充MDI父窗体中的所有可用区域:
-
FormBorderStyle=FormBorderStyle.None
-
Dock=DockStyle.Fill
-没有控制箱 问题是,当我显示()我的子窗体时,它占据所有区域,工具栏正确合并,但我看到窗体边框。当我双击窗体的上边框时,边框消失,MDI子项正确显示(或者更好,根据我的需要) 如果这样更改表单样式:
Dock=DockStyle.Fill
=>WindowState=FormWindowState.Maximized
窗体顶部位于功能区下方,部分隐藏在功能区中 如果未将Dock设置为DockStyle.Fill,则窗体边框显示问题不存在,窗口在最大化时仍将占据MDI父窗口的整个区域 除非您有设置DockStyle.Fill的特定原因,否则我建议将其保留为DockStyle.None
请注意,如果删除功能区并在其位置使用Microsoft MenuStrip,则会看到类似的行为,这样功能区似乎不会影响此行为。设置以下属性:
FormBorderStyle=FormBorderStyle.None
Dock=DockStyle.None
事件),此设置:
WindowState=FormWindowState.Maximized
并且表单显示正确
我认为,当我在构建表单对象期间设置此值时,MDI子可用区域不考虑功能区占用的空间(可能在功能区占用部分空间之前计算可用区域)。
当我将WindowState=FormWindowState.Maximized
的设置推迟到布局事件时,MDI子可用区域考虑了功能区占用的空间。是否有特定原因将DockStyle设置为DockStyle.Fill?我必须填充所有MDI子可用区域,我认为有两种方法:填充或最大化。实际上两者都不起作用。我相信对于MDI儿童来说,最大化更合适,而且可能是您想要的行为。如果其中任何一个导致它位于父对象上的功能区后面,那么我需要关于该问题的更多详细信息,因为我无法复制此内容。丝带最小化了吗?你能提供足够的代码来重现这个问题吗?另外,您所引用的Infragistics程序集的确切版本是什么?正如您所说,我将Fill DockStyle属性替换为None(因此+1),并使用FormWindowsState.Maximized。但问题中强调的最后一个问题仍然存在。