Aus Form2 auf textBox aus Form1 zugreifen?

moson

Mitglied
Hi Leutz,

ich hab hier 2 Forms. Ich habe nun einen Button auf Form2. Dieser soll den den textBox1.Text von Form1 ändern. Wie kann ich jetzt auf die textBox1 aus Form1 zugreifen?
 
Is vieleicht nicht die Eleganteste Lösung aber könntest dir in Form1 eine Methode schreiben die die TextBox z.B. mit einem String füllt.

MfG mgd-one
 
Verstehe ich irgendwie nicht. Mein Problem ist ja das ich aus Form2 nicht auf Objekte in Form1 zugreifen kann... (in den Fall: Die textBox1)
 
Hallo.

Diese Frage wurde hier auch schon öfters gestellt.
Aber nochmal.

Deine Form2 wird ja vorraussichtlich aus einer Methode von Form1 heraus erstellt. Wenn du den Konstruktor von Form2 so umschreibst, dass er einen Verweis auf Form1 erwartet, kannst du diesen verwenden um auf öffentliche Methoden/Eigenschaften/Felder von Form1 zuzugreifen.

Hier ein kleines Beispiel, zwar nur für die Konsole, aber ich hoffe es wird ersichtlich was ich meine.

Code:
using System;

public class Klasse1
{

	public static void Main(string[] args)
	{
		new Klasse1();
	}

	public Klasse1()
	{
		Klasse2 k2 = new Klasse2(this);
	}

	public void Write(string msg)
	{
		Console.WriteLine("Klasse2 sagt ich soll \"{0}\" sagen", msg); 
	}
}

public class Klasse2
{
	private Klasse1 _Parent;
	public Klasse2(Klasse1 _parent)
	{
		this._Parent = _parent;
		this._Parent.Write("Hallo Welt");
	}
}

Mfg,
Alex
 
Ah, jetzt weiss ich bescheit. Besten dank!

:edit:


Mist, jetzt ballert der mir ne Exception um die Ohren: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Code:
private void menuItem1_Click(object sender, System.EventArgs e)
{
	
 	chat.textBox3.Text = "Hallo";//listBox1.GetItemText(listBox1.SelectedItem);
}

Ich hab Form1 chat an den Form2 Konstruktor übergeben und auch Form1 chat deklariert... Der zeigt mir auch die ganzen Methoden an die public sind, nur kommt halt noch die exception...

// Edit: Den Code in den Codetags bisserl verbessert ;)
 
Zuletzt bearbeitet von einem Moderator:
Mh,
die Variabe die du im Konstruktor übergeben hast einer anderen zugewiesen die in der ganzen Klasse sichtbar ist?
Zeig evt. ein bisschen mehr Code. (Konstruktor,.. )
 
also hab das nicht ganz gechekt
ich hab da ein Eingabefenster wo man zwei namen eingeben sollte und jene sollen dann an ein weiteres form weitergegeben werden.

mfg rauch
 
So könnte man das machen:

Beim Klick Event eines Buttons in Form1 schreibst du:

Code:
  Form2 f2 = new Form2();
  f2.textBox1Form2.Text = this.textBox1Form1.Text;
  f2.textBox2Form2.Text = this.textBox2Form1.Text;
  f2.Show();

Aber du darst nicht vergessen, in der Form2 die Textfelder auf public zu setzen. Eleganter ist dies natürlich mit GET und SET zu erledigen.
 

Neue Beiträge

Zurück