从c#中的另一个对象创建的对象的形式

时间:2013-05-21 09:58:30

标签: c#

我有一个包含flowlayoutpanel的表单,并且用户控件A被添加到面板中。在用户控件A的构造函数中,传递指向相同flowlayoutpanel的指针,以便用户控件A在同一flowlayoutpanel中创建另一个用户控件B.问题是首先添加用户控件B,然后是A.

Form1.cs的

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void addBtn_Click(object sender, EventArgs e)
    {
        flowLayoutPanel1.Controls.Add(new Graphic1(this.flowLayoutPanel1));


    }
}

Graphic1.cs

public partial class Graphic1 : UserControl
{
    public Graphic1(FlowLayoutPanel flowPointer)
    {
        InitializeComponent();

        flowPointer.Controls.Add(new Graphic2());
    }
}

Graphic2.cs只是一个标签

问题是在面板

中的Graphic1.cs之前添加了Graphic2.cs

1 个答案:

答案 0 :(得分:0)

我看到三种可能的解决方案:

  • 如果控件A的构造函数接收到流布局面板,请将控件A添加本身添加到流布局面板,然后添加其附加控件。
  • 不是在控件A的构造函数中添加其他控件,而是添加一个方法,例如InitializeLayout来控制A.您可以在将控件A添加到流布局后调用该方法然后,该方法可以向流布局面板添加任何其他控件。
  • 捕获对控件A的Parent属性的任何更改(不确定是否可能;这取决于您正在使用的GUI工具包),并在控件A的父级更改时添加其他控件。 / LI>