Feedback

C# - Kommunikation zwischen zwei Forms

Veröffentlicht von am 02.08.2006
(3 Bewertungen)
Dieses Beispiel soll zeigen wie Daten zwischen zwei Fenstern ausgetauscht werden können.
Das Hauptfenster (Form1) instanziert ein neues Fenster (Form2) und zeigt es an.
Beim Instanzieren wird eine Referenz auf Form1 übergeben, somit weis jetzt Form2 wer es aufgerufen hat.
Der Zugriff erfolgt über Properties.
//Code Form1 
//=========== 
Form2 f2 = new Form2(this); // neue Instanz von Typ Form2 erstellen mit Übergabe der eigenen Referenz 
f2.Show(); // neue form Anzeigen 

//Übergeben eines strings von Form1 zu Form2 
f2.TextBoxForm2 = "Hallo Welt"; 

//Property die das Lesen und Schreiben des TextBox Inhaltes ermöglicht 
public string TextBoxForm1 
{ 
  get 
  { 
    return textBox1.Text; 
  } 
  set 
  { 
    textBox1.Text = value; 
  }  
} 

// Code Form2 
//=========== 
Form AufrufendeForm; // Globale Variable im Form2 
public Form2(Form f) // Konstruktor 
{ 
        InitializeComponent(); 
  AufrufendeForm = f;   // Zuordnung der Referenz 
} 

// Übergeben eines Strings von Form2 zu Form1 
((Form1)AufrufendeForm).TextBoxForm1 = "Hallo Welt"; 

//Property die das Lesen und Schreiben des TextBox Inhaltes ermöglicht 
public string TextBoxForm2 
{ 
  get 
  { 
    return textBox1.Text; 
  } 
  set 
  { 
    textBox1.Text = value; 
  } 
}
Abgelegt unter Form1, Form2, Datenaustausch, Kommunikation, Forms.

1 Kommentare zum Snippet

Rainbird schrieb am 05.11.2006:
Auf diese Weise wird eine Abhängigkeit der beiden Formulare erzeugt, was in den meisten Fällen nicht sinnvoll ist. Form1 sollte besser ein Objekt mit den Daten an den Konstruktor von Form2 übergeben, statt eine Referenz auf sich selbst.
 

Logge dich ein, um hier zu kommentieren!