Hallo,
es gibt grundsätzlich zwei Möglichkeiten:
Bei der einfachen Variante hat frm1 die Kontrolle darüber, wann der Wert zurückgegeben wird (genauer: wann er geholt wird). Dabei wird von frm1 aus eine Eigenschaft von frm2 gezielt abgefragt, etwa so:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| public string TextBoxText{ get { return myTextBox.Text; } }
string myValue = frm2.TextBoxText; |
Bei der komplizierten (eigentlich schöneren) Variante hat frm2 die Kontrolle darüber, wann der Wert übergeben wird. Dabei wird von frm1 an frm2 ein
Delegate übergeben; dieser wird innerhalb von frm2 aufgerufen. Darüber wirst du unter
[FAQ] Kommunikation von 2 Forms mit vielen weiteren Verweisen ausführlich informiert.
Eine Notlösung erläutere ich nicht, weil sie dem Gedanken der OOP widerspricht: Keine Klasse darf Kenntnis oder gar Zugriff auf Interna einer anderen Klasse haben. (Diesen Hinweis gibt es vorsorglich für den Fall, dass jemand diesen miserablen Weg vorschlagen will.)
Übrigens gehören Namen wie Form1 oder Label23 verboten, siehe
.NET Richtlinien für Namen. Auch ist ein Bezeichner wie frm1 für etwas, was kein Formular ist, äußerst missverständlich.
Gruß Jürgen