If the scenario is such that Form1 has a label and Form2 has a button that will change the label's text, then while you are loading Form2 you must make a custom constructor sending Form1's instant so that it can be manipulated.
For Example, inside Form1's constructor (I don't know how you will load Form2, I am loading it inside form1's constructor just to show you):
public Form1()
{
Form2 form2 = new Form2(this);
form2.Show();
}
Then inside Form2 class make a public variable of Form1 type so it can be accessed by all methods. Make a custom constructor that takes in that value and assigns it to the global variable. Then manipulate that object in the button click method(assuming the label is called label1 in form1 and button is called button1 in form1):
public class Form2
{
public Form1 _form1;
public Form2(Form1 form1)
{
_form1 = form1;
}
protected void button1_Click(object sender, EventArgs e)
{
_form1.label1.Text = "New Text";
}
}