Properties - Wert übergeben?

  • Hallo,

    bin gerade dabei meine C# Kenntnisse ein wenig auf zu frischen und stoße schon recht früh an meine Grenzen :(. Wie kann ich von form1 einen Wert an form2 mittels property/getter übergeben?

    Hier mein Code, der leider nicht funktioniert und ich kanns mir ehrlich gesagt nicht erklären:

    Form1:

    Form2

    mMn sollte in label2.Text true stehen, es steht allerdings false drinnen. Würd mich freuen, wenn mir jemand erklären kann warum. THX

    Einmal editiert, zuletzt von Borion (30. Januar 2012 um 18:32)

  • Der Grund ist, dass du in Form2.Form2_Load ein neues Form1-Objekt erzeugst. Dort wurde der Button dann noch nicht geklickt. Wenn du in Form2 auf genau das Form1-Objekt zugreifen möchtest, welches das Form2-Objekt erstellt hat, dann müsstest du das irgendwie übergeben, zum Beispiel im Konstruktor:

    Form2

    Das ist natürlich nur eine unter vielen Möglichkeiten, es hängt im wesentlichen davon ab, was du tun möchtest. Du könntest Form2 auch eine entsprechende Property geben, die Form1 direkt nach dem erzeugen setzt, oder Form1 zu einem Singleton machen bzw. anderweitig statisch zugriff auf eine Form1-Instanz erlauben.

    Eine kleine Nebenbemerkung: Ein besseres Benennungsschema für Properties ist es, Dinge wie Get/Set wegzulassen - das ergibt sich nämlich ohnehin aus der Definition der Property und entspricht der Art des Zugriffs eher als ein Methodenname.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!