Laden...

Welche Textbox hat den Fokus?

Erstellt von rookie vor 19 Jahren Letzter Beitrag vor 19 Jahren 3.739 Views
R
rookie Themenstarter:in
105 Beiträge seit 2004
vor 19 Jahren
Welche Textbox hat den Fokus?

Hi zusammen!

Ich habe mehrere Textboxen, die je nach Benutzer mit Standardtexten befüllt werden sollen. Um Falscheingaben zu vermeiden, möchte ich, dass per Button der Text in die entsprechende Box gesetzt wird.

Wie krieg ich dazu denn raus, welche Textbox gerade den Fokus hat? Denn nur in die soll der entsprechende Text gesetzt werden!

Thx im Voraus!

333 Beiträge seit 2004
vor 19 Jahren

Versuchs mal mit


contaimerControl.ActiveControl

Damit erfäährst du zumindest das aktive Control eines Conatiners. Es hängt davon ab, wo sich die Textboxen, welches ContainerControl sie besitzt,

([bb]|[^b]{2})

R
rookie Themenstarter:in
105 Beiträge seit 2004
vor 19 Jahren

Danke erst mal noch für die Antwort!

Hab's ausprobiert, bin aber an dem Problem gescheitert, dass, sobald ich auf den entsprechenden Button clicke, der Button das ActiveControl ist!!! Damit weiß ich wieder nicht mehr, welche TextBox aktiv ist bzw. war. X(

Ich hab jetzt alle betroffenen Textboxes mit einem Click-EventHandler versehen und gebe einer Variable einen best. Wert. Je nach Variablen-Wert, wird dann über die Button-Funktion die entsprechende TextBox mit dem gewünschten Wert befüllt! Zwar funktioniert das ganze einigermaßen (mit kleinen Schwächen), aber glücklich macht mich diese "Wurschtel"-Lösung nicht!!!

Hat jemand noch einen saubereren Weg für mich??

Danke schon mal!
Gruß
rookie

P
939 Beiträge seit 2003
vor 19 Jahren

Wenn du auf einen Button klickst, bekommt der auch den Fokus. Du musst es wohl so machen wie du es im Moment schon machst.

333 Beiträge seit 2004
vor 19 Jahren

Wie Pulpapex schreibt gibts da wohl wirklich tolle Lösung. Du wirst nirgends mehr erfahren, welches Control zuletzt den Fokus hatte. Aber ich würde statt mit dem Click-Event lieber mit den Enter oder GotFocus-Event arbeiten, das ist saubere. Es reicht ja wenn du eine Ereignis-Behandlung für alle Textboxen schreibst.

([bb]|[^b]{2})

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo NoOneKnows,

Du wirst nirgends mehr erfahren, welches Control zuletzt den Fokus hatte.

nun ja, immerhin kann man auf die Control.GotFocus (und ggf. LostFocus) Ereignisse reagieren und so selbst mitrechnen welches Control, wann den Fokus hatte. Selbst eine lückenlose Fokuswechsel-Historie seit Programmstart ist so möglich.

herbivore

333 Beiträge seit 2004
vor 19 Jahren

Ich meinte ja auch, das es kein vorgefertigten Mechanismus dafür gibt. Programmieren kann man sicherlich fast alles 😉

([bb]|[^b]{2})

R
rookie Themenstarter:in
105 Beiträge seit 2004
vor 19 Jahren

Blöde Frage dazwischen (zu NoOneKnows):

Wie kann ich denn EINE Ereignisbehandlung für alle Textboxen schreiben? Ich will ja je nach TextBox einer Variable einen anderen Wert geben!

Gruß
rookie

P
939 Beiträge seit 2003
vor 19 Jahren

Den gleichen Event-Handler zu mehreren GotFocus-Ereignissen hinzufügen.
Über den sender-Parameter kann unterschieden werden welche TextBox ein
GotFocus-Ereignis ausgelöst hat.

private void HandleGotFocus(object sender, EventArgs e) {

  TextBox textBox = (TextBox)sender;

  if(textBox == this.textBoxA) {
    // textBoxA war es.
  } else if(textBox == this.textBoxB) {
    // textBoxB war es.
  }
}
R
rookie Themenstarter:in
105 Beiträge seit 2004
vor 19 Jahren

Wow!
Äh ... tja, da fehlt's bei mir dann doch noch! Aber man lernt ja nie aus!!

An dieser Stelle auch mal ein Dankeschön für die häufige und geduldige Hilfe zu meinen zahlreichen Problemchen!!!!

Gruß
rookie