我有一个 MDI 窗体和一些子窗体。我将子窗体停靠到 MDI 窗口的不同区域,但是当任何一个子窗体失去焦点时,其他停靠的窗体将重新排列。由于困惑,我准备了一组图像来展示这种行为。
Image1, 在点击任何窗口之前:
Image2,点击窗口2后:
问题是当最左边的停靠窗体获得焦点时,它将调整大小到 MDI 窗口的右端而不考虑窗口 1。
我该如何解决这个问题?谢谢。
最佳答案
还有另一个修复方法。一个非常快速的例子是:
- 创建一个新的窗口窗体 (Form1)。将其 isMidiContainer 属性设置为 true。
- 现在,在其上放置一个面板 (Panel1) 并将其停靠属性设置为右侧,然后设置宽度。
- 将另一个面板 (panel2) 拖放到窗体上并将其停靠栏也设置为右侧。现在这两个面板停靠在彼此旁边。
现在创建 2 个新窗口窗体(Form 2 和 Form3)。
现在,在 Form1 的主程序中,就在 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();
这是一种略有不同的方法,但应该可以正常工作。
关于c# - MDI 窗体中的子窗口停靠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770228/