c# 从 form2 添加标签

c# add label from form2

Form2代码:

public void button2_Click(object sender, EventArgs e)
        {   
          Form1 form1form = new Form1();
            Label asd = new Label();
            asd.Text = "asdasasdasdasd";
            form1form.Controls.Add(asd);

            Form2 form2form = new Form2();
             form2form.close();

}

我想从 form2 添加新的标签和按钮到 form1

它是怎么做到的?

感谢

将form2中的所有控件添加到form1中:

foreach(Control control in form2form.Controls)
{
    form1form.Controls.Add(control);
}

或者,如果您只想添加这两个内容,则有两种选择: 1. 将这两个控件public设为

public class Form2 : Form
{
    //othercode
    public Button button;
}

然后通过以下方式添加这些特定控件:

form1form.Controls.Add(form2form.button);

2:按名称添加,例如:按钮名称为"button",标签名称为"label".

form1form.Controls.Add(form2form.Controls.Find("button",true).FirstOrDefault();

如果您想从 form2form 访问 form1form,您必须 public 引用 form1form。在 form1form 中声明 属性,如下所示:

public static form1form Instance { get; private set; }

然后在form1formLoad事件中设置Instance

private void form1form_Load(object sender, EventArgs e)
{
   Instance = this;
}

form2form中:

public void button2_Click(object sender, EventArgs e)
{
    Label asd = new Label();
    asd.Text = "asdasasdasdasd";
    form1form.Instance.Controls.Add(asd);
}