Nemag hat folgendes geschrieben : |
(hehe .. dafür werden mich jetzt einige steinigen) |
So ist es, und das ist überhaupt nicht lustig. Es hat schon seinen Grund, warum
Controls standardmäßig als
private deklariert werden. Einer der
Grundsätze der OOP ist, dass verschiedene Klassen keinerlei Kenntnisse haben dürfen über ihre Details, sondern über fest definierte Schnittstellen miteinander kommunizieren.
Das "rufende" Formular darf Zugriff auf das "gerufene" haben, aber niemals umgekehrt. Dieser Datenaustausch erfolgt über Eigenschaften oder Methoden, aber nicht direkt auf das Control. Beispiel mit Methode:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| public void SetLabelCaption(string content) { this.myLabel.Text = content; }
form2.SetLabelCaption("schreib das hin"); |
Wenn das "rufende" Formular automatisch Informationen vom "gerufenen" erhalten soll, geht das über
Delegates. Das ist etwas komplizierter und nicht mit einem Beispiel mit 10 Zeilen zu erklären; ich verweise deshalb auf
[FAQ] Kommunikation von 2 Forms und die weiteren dort genannten Links.
Jürgen