Klassenübergreifende Zugriffe

Hallo nochmal,

leider hat sich mein Problem doch nicht ganz geklärt. Ich habe Schwierigkeiten, eine Variable klassenübergreifend zu nutzen. Nehmen wir obiges Beispiel:

In Form1 wird "Dummy" deklariert und der Wert "" zugewiesen.

Form2 soll auf Dummy zugreifen und verändern können.

Form1 soll den in Form2 geänderten Wert von Dummy übernehmen und ausgeben.

Kann mir da jemand helfen?

MfG

Gerd
 
Hi,

wenn du den Wert von Dummy aus der Form2 veraenderst, veraenderst du auch automatisch den Wert von Dummy der Form1, da die Variable in der Form2 die die Form1 darstellt nur eine Referenz auf die tatsaechliche Form1 ist.
Bloeder Satz. Hab den Code vom letzten mal ein wenig modifiziert:
Code:
public class Klasse1 : System.Windows.Forms.Form
{
	private Klasse2 kl2;
	public string dummy = ""; // hier die dummy variable die wir aus der Klasse2 veraendern moechten
	...
	private void Test()
	{
		this.kl2 = new Klasse2(this); // hier uebergeben wir dem konstruktor mit 'this' unsere instanz der 'Klasse1' also sich selber
		this.kl2.ShowDialog();
		MessageBox.Show(this.dummy); // dummy hat nun den in Klasse2 geanderten wert
	}
}

public class Klasse2 : System.Windows.Forms.Form
{
	private Klasse1 kl1; // 'Klasse1' global fuer die ganze klasse verfuegbar machen
	...
	// konstruktor
	public Klasse2(Klasse1 temp)
	{
		this.kl1 = temp; // referenz auf 'Klasse1' erstellen
		this.Test();
	}

	private void Test()
	{
		this.kl1.dummy = "bla"; // jetzt haben wir bereits den wert von 'dummy' veraendert da 'kl1' nur eine referenz auf die Klasse1 ist
	}
}
 
Zurück