我有一个MDI应用程序,我最近在MDI容器中添加了一个新控件,它覆盖了客户端区域(子项出现和运行的区域)。问题是,当他们试图最大化他们的形式时,它出现在侧边栏后面:
用于比较的原始表格(查看重叠)
我知道我可以使用Form.MaximumSize
属性限制每个表单最大化的总大小,但是我不确定如何将表单的x / y位置设置为位于侧栏。
我可以使用侧面板作为标记,即x = sidepanel.Width
,因为它永远不会改变,但我不知道如何将其应用于最大化的形式。
或者,是否可以为侧边栏提供与菜单栏相同的行为?也就是说 - 菜单栏不被认为是在客户区;所以当表单最大化时,它不会与子表单重叠?
答案 0 :(得分:1)
好的,所以经过一些摆弄后,我发现主要的问题是,因为我是动态添加控件,所以控制它有点困难。所以我做了这个:
Dock
属性设置为" left" 动态添加自定义控件到面板:
SidePanel = new Menu_SidePanel();
SidePanel.Location = new System.Drawing.Point(0, 0);
SidePanel.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left);
panel1.Controls.Add(SidePanel);
现在,因为该面板已被添加到"停靠"在父表单上,子表单的其余部分在最大化时使用侧面板作为另一个边界。