Laden...

Werte eines TextBox (UserControl) an Form übergeben.

Letzter Beitrag vor 14 Jahren 6 Posts 4.158 Views
Werte eines TextBox (UserControl) an Form übergeben.

Hallo zusammen,

habe mal eine frage an euch.
In meinem Programm habe ich mir ein UserControl selber erstellt indem ich mehrere TextBoxen habe.

Jedes mal das der user etwas in der TextBox Einträgt möchte ich den Eintrag an meiner Form weiterleiten bzw. abfragen.
Wie geht es am bestens? mit einem Event? falls ja, könnte mir jemand sagen wie der aussehe muss?
oder soll ich mir wieder den Tutorial "Kommunikation zwischen zwei Formen" anschauen.

Danke
LeChimp

Wie du schon festgestellt hast ist das beste ein Event zu definieren, bzw. das gibt es ja sogesehen schon.
TextChanged Event der Textbox. Daher braucht die Form sich nur auf das Event anmelden und schon weiß sie wenn sich ein Text ändert. Im sender der Eventmethode bekommst du dann immer die entrsprechende Textbox mit rein gereicht.

Tortzdem kann es nicht schaden die das oben besagte Turotial mal durch zu lesen, dann kannst du mal versuchen ein eigenes Event zu definieren. Im Usercontrol dann dieses Event feuern wenn sich irgednwas an irgendeiner TB ändert. Sorum ist es nämlich sauberer und richtiger, weil dann die Form nix von den TB wissen muss, nur das Event muss public sein.

Again what learned...

Hallo LeChimp,

oder soll ich mir wieder den Tutorial "Kommunikation zwischen zwei Formen" anschauen.

nein, musst du nicht, aber in die FAQ solltest du vor dem Posten schon immer gucken. Siehe [FAQ] Eigenen Event definieren.

herbivore

Hallo Ihr Wegweiser
leider muss ich noch was fragen, denn ich komme einfach nicht weiter.
Eine meiner 2 grauen Zellen möchte die Tutorials nicht verstehen (Kann ja auch sein, dass beide es nicht kapieren möchten).

Nun... habe zwei UserControls ( Uc1, Uc2) und will strings von Uc1 zu Uc2 sicken bzw. setzen.

Das schicken
In Uc1 habe ich:


public void teampos1(string team)
{
   Uc2 uc2 = new Uc2();
   uc2.setteam(team);

}

und in Uc2:


public void setteam(string team)
{
   label3.Text = team; // Wieso geht dies hier nicht
   MessageBox.Show("Dass hier geht" + team); // Wieso geht dies?
}

Wass fehlt mir (Bis ein paar billonen graue Zellen im Kopf?) ich meine, was fehtl mir im Code.
Danke Nochmals....

Hallo LeChimp,

du erzeugst ein neues UserControl, willst aber den Text sicher in dem bestehenden Control setzen.

Die UserControls sollten nicht direkt miteinander reden. Feuer in dem eine Control ein Event ([FAQ] Eigenen Event definieren), fange das Event in der Form und lass das Form dann den Text an das andere UserControl übergeben.

herbivore

Oder erstelle dir ein Datenobjekt was die Events und Properties hat die du brauchst.
Dann bekommt jedes UserControl eine Refferenz auf dieses Datenobjekt. Das Kannst du ja z.:B in der Form erstellen.
Die UserControls bekommen das Objekt dann auch am besten über properties, da es sonst oft Probleme mit dem Designer gibt wenn man UserControl Parameter im Konstuktor mit gibt.
Das geht dann schon in Richtung Trennung von Gui und Daten was generell kein schlechter Ansatz ist.