Vous confondez les formulaires et les instances de formulaire. Un formulaire est juste une classe. Lorsque Form1 s'affiche, ce qui affiche est une instance de la classe Form1. Lorsque Form2 s'affiche, une instance de Form2 s'affiche.
Vous essayez d'utiliser
Form1.label1.Text = "Fred";
Mais vous ne pouvez définir un champ ou un membre d'une instance . Vous faites référence à la classe "Form1".
Vous avez besoin de deux choses. Je vais supposer que Form2 est lancé à partir d'un bouton sur Form1. Ajouter un constructeur à Form2 qui accepte une instance de Form1:
private Form1 _starter;
public Form2(Form1 starter) : this()
{
_starter = starter;
}
Puis ajouter une propriété à Form1 qui expose le texte de l'étiquette: ne pas exposer directement les contrôles - seulement une forme donnée doit savoir ce que les contrôles sont là-dessus:
public string LabelText
{
get {return label1.Text;}
set {label1.Text = value;}
}
Ensuite ont Form2 définissez cette propriété:
private void button1_Click(object sender, EventArgs e)
{
_starter.LabelText = "Fred";
}
Merci pour votre réponse. Tout fonctionne bien maintenant :) – Greycrow