我想在我的应用程序的splitcontainer Panel2上添加12个小表单。这是一个4x3 = 12表格的网格。
所以在我的应用程序的主窗体中,我添加了一个SplitContainer控件。另外我已经创建了12个单独的表格
要将12个表单添加到splitcontainer,我执行此操作:
form1 _form1 = new form1();
_form1.TopLevel = false;
this.splitContainer1.Panel2.Controls.Add(_form1);
_form1.Show();
....
form12 _form12 = new form12();
_form12.TopLevel = false;
this.splitContainer1.Panel2.Controls.Add(_form12);
_form12.Show();
这里的问题是所有表格(form1 ... form12)显示在相同的位置(位置),behing form1。所以我必须手动移动并更换每个表格
我想得到的是一个包含所有12种形状的SplitCOntainer,每种形式都在不同的特定位置。
因此,当SplitContainer调整大小时,所有12个表单都会调整大小,当表单关闭时,它的速度保持为空,直到新表单出现在那里。
编辑。我在这里编辑以显示我如何解决这个问题
int _width = this.flowLayoutPanel1.Width;
int _height = this.flowLayoutPanel1.Height;
_width = (int)_width / 4;
_height = (int)_height / 3;
_form1.TopLevel = false;
_form1.Width = _width;
-form1.height = _height;
_form1.Owner = this;
_form1.TopLevel = false;
flowLayoutPanel1.Controls.Add(_form1);
_form1.Show();
....
_form12.TopLevel = false;
_form12.Width = _width;
-form12.height = _height;
_form12.Owner = this;
_form12.TopLevel = false;
flowLayoutPanel1.Controls.Add(_form12);
_form12.Show();
它按照我的意愿运作。 感谢您将FlowLayoutPanel引入SplitContainer.panel
答案 0 :(得分:3)
Form frm;
for (int i = 0; i < 12; i++)
{
frm = new Form(); //generate new instance
frm.Width = 150;
frm.Height = 150;
frm.Owner = this;
frm.TopLevel = false;
flowLayoutPanel1.Controls.Add(frm);
frm.Show();
}
您可以使用FlowlayoutPanel。 只需在SplitContainer1.Panel2中添加Flowlayoutpanel 并设置flowLayoutPanel1.dock = Fill