简体   繁体   中英

c# add label from form2

Form2 code:

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();

}

I want to add new label and button on form1 from form2

how it made ?

thanks

If you want to access form1form from form2form you must have public reference to form1form . Declare property in form1form like below:

public static form1form Instance { get; private set; }

Then set Instance in Load event of form1form :

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

In form2form :

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

To add all controls in form2 to form1:

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

Or if you want to just add those two things, there are two options: 1. Make those two Controls public as so

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

And then add these specific controls by:

form1form.Controls.Add(form2form.button);

2: Add them using the names, for example: say the name of the button is "button" and the name of the label is "label".

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM