我有一个 MDI 表单和其中的一些子表单。我将子窗体停靠到 MDI 窗口的不同区域,但是当任何子窗体失去焦点时,其他停靠的窗体将重新排列。由于混乱,我准备了一组图像来展示该行为。
Image1,单击任何窗口之前:
Image2,点击窗口2后:
问题是,当最左侧的停靠窗体获得焦点时,它将调整大小到 MDI 窗口的右端,而不考虑窗口 1。
我该如何解决这个问题?谢谢。
对此还有另一个修复方法。一个非常快速的例子是:
- 创建一个新的 Windows 窗体 (Form1)。将其 isMidiContainer 属性设置为 true。
- 现在,在其上放置一个面板(Panel1)并将其停靠属性设置为右侧,然后设置宽度。
- 将另一个面板 (panel2) 拖放到窗体上,并将其停靠栏也设置为右侧。现在这两个面板并排对接。
现在创建 2 个新的 Windows 窗体(Form 2 和 Form3)。
现在,在 Form1 的 main 中,在 InitializeComponent() 下方添加:
Form2 f2 = new Form2();
f2.TopLevel = false;
f2.Dock = DockStyle.Fill;
panel1.Controls.Add(f2);
f2.Show();
Form3 f3 = new Form3();
f3.TopLevel = false;
f3.Dock = DockStyle.Fill;
panel2.Controls.Add(f3);
f3.Show();
这是一个有点不同的方法,但它应该工作得很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)