Entwickler-Ecke

WinForms - Beim Drücken der Eingabe-Taste das nächste Feld fokussieren


Hugolog - Mo 02.08.10 18:19
Titel: Beim Drücken der Eingabe-Taste das nächste Feld fokussieren
Ich habe folgendes Problem,
ich habe z.B. tbx1 und tbx2,
Wenn ich dass Form aufrufe ist tbx1 im Fokus, jetzt möchte ich, dass wenn die Eingabe-Taste gedrückt wird tbx2 fokussiert wird.
Wie mache ich das am Besten?
Danke im Vorraus,
Lucas


Moderiert von user profile iconKha: Topic aus Basistechnologien verschoben am Mo 02.08.2010 um 20:47


Kha - Mo 02.08.10 18:38

Bitte gib noch die Information preis, ob es um Winforms, WPF oder Webforms geht, damit wir den Thread entsprechend verschieben können. "tbx" soll wohl TextBox bedeuten, nehme ich an?


Hugolog - Mo 02.08.10 18:41

tbx = textbox ,
und es ist ein Windows Form


CSMN - Mo 02.08.10 19:25

hallo hugolog,

warum möchtest du dass? eigentlich verwendet man dazu accesskeys und/oder den tab!

ansonsten, gehst du in das click-event der textbox1 und setzt dort den fokus
auf textbox2.


Hugolog - Mo 02.08.10 19:56

Mir hätte das auch gereicht, nur dass Programm ist für einen Bekannten, dieser braucht es aber so wie ich es beschrieben habe.


CSMN - Di 03.08.10 09:16

haste es denn mit dem event hinbekommen?


Hugolog - Di 03.08.10 10:15

ja mit dem Click-event funktioniert es, nur es soll ja per Eingabe-Taste funktionieren.


danielf - Di 03.08.10 10:29

Hallo,

du kannst das KeyUp-Event registrieren und dann schauen wenn Enter gedrückt wird den Focus wechseln.

Gruß


CSMN - Di 03.08.10 10:46

oder keydown... gibt da viele möglichkeiten:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
            if (e.KeyCode == Keys.Enter) 
            {
                textBox2.Focus(); 
            }
}


Th69 - Di 03.08.10 13:38

Statt "Focus" aber besser "Select" benutzen, s. Hinweis in der MSDN:
MSDN hat folgendes geschrieben:

Focus ist eine Methode auf niedriger Ebene, die hauptsächlich für Autoren benutzerdefinierter Steuerelemente bestimmt ist. Anwendungsprogrammierer sollten hingegen die Select-Methode oder die ActiveControl-Eigenschaft für untergeordnete Steuerelemente bzw. die Activate-Methode für Formulare verwenden.


Creedy - Di 03.08.10 13:52

Wenn du die Form auswählst kannst du unter den Eigenschaften eine Funktion des Acceptbuttons festlegen. Es sollte funtkionieren wen du dir eine Funtkion schreibst welche die textbox2 aktiviert und diese dem acceptbutton hinterlegst , dann sollte er mit enter wechseln.