Поскольку вы не опубликовали свой код, я не могу сказать, почему он не работает. Но то, что вы хотите, легко сделать.
public class FormA : Form
{
// ...
public string Label1Value
{
get { return this.label1.Text; }
set { this.label1.Text = value; }
}
// ...
}
И вы можете легко использовать его в любой другой форме или коде (кроме случаев, когда он в другом потоке.)
public class FormB : Form
{
private void Button1_Click(object sender, MouseEventArgs e)
{
formA.Label1Value = "FormB was clicked";
}
}
<Ч />
Обновление
Если вы хотите использовать события, предложенные Давиде, вы можете сделать что-то вроде этого.
public class EULAEventArgs : EventArgs
{
public string Signature { get; set; }
}
public class FormB : Form
{
public event EventHandler<EULAEventArgs> EULAAccepted;
protected virtual void OnEULAAccepted(EULAEventArgs e)
{
if (EULAAccepted != null)
EULAAccepted(this, e);
}
public void Button1_Clicked(...)
{
OnEULAAccepted(new EULAEventArgs { Signature = "..." });
}
}
public class FormA : Form
{
public FormA()
{
// ...
formB.EULAAccepted += EULAAccepted;
}
private void EULAAccepted(object sender, EULAEventArgs e)
{
this.label1.Text = String.Format("Thank you {0} for accepting the EULA.",
e.Signature);
}
}