Visual Studio splitcontainer和Forms

时间:2013-01-08 03:34:11

标签: c# winforms splitcontainer

我想在我的应用程序的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

1 个答案:

答案 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