Laden...

[gelöst] Tab Event auch über Enter Taste auslösen

Erstellt von chip777 vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.134 Views
C
chip777 Themenstarter:in
74 Beiträge seit 2010
vor 13 Jahren
[gelöst] Tab Event auch über Enter Taste auslösen

Hi ihr 😃
Ich habe auf einem Form mehrere Textboxen, nun möchte ich folgendes einbauen um die Benutzerfreundlichkeit meines Programms zu erhöhen.
Ich möchte das wenn jmd die Enter Taste innerhalb einer textbox drückt, dann die nächste Textbox ausgewählt wird. Das habe ich so realisiert:


        private void textBoxName_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == ('\r'))
            {
                textBoxVorgang.Select();
            }
        }

Allerdings müsste ich diesen Code jetzt für jede TextBox schreiben und immer den Nachfolger per Hand ändern, gibt es da einen Befehl der automatisch den Tab ausführt?

Gruß Martin

2.298 Beiträge seit 2010
vor 13 Jahren

Versuch mal GetNextControl() 😃 - müsstest dann nur prüfen, ob das Control wirklich das gewählte sein soll.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

C
chip777 Themenstarter:in
74 Beiträge seit 2010
vor 13 Jahren

Hallo inflames2k,

danke für den Tipp. Der zweite Parameter ist klar, aber wie kann ich den ersten auf mein aufrufendes Objekt setzten?

916 Beiträge seit 2008
vor 13 Jahren

Schau dir mal die NextControl() Methode an. Du kannst also jede Textbox an ein und das selbe callback binden, und dann dort einfach immer das nächste Control fokusieren.

Again what learned...

2.298 Beiträge seit 2010
vor 13 Jahren

Hier mal ein funktionierender Codeausschnitt. Wollt dir zwar eigentlich nur den Ansatz zeigen, aber wegen 3 Zeilen, mach ich da jetzt keinen Hehl draus.

Soll es für alle Controls gelten, kannst du die If abändern.


if (e.KeyChar == '\r')
{
     // get the next control in the controlcollection
     // and focus it
    Control ctrl = GetNextControl(sender as Control, true);
    if(ctrl != null && ctrl.GetType() == typeof(TextBox))
           ctrl.Focus();
}

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

M
153 Beiträge seit 2010
vor 13 Jahren

Nur eine Sache am Rande: Das Weiterrücken in der Eingabe per ENTER ist etwas, das Excel-verwöhnte Anwender gerne haben möchten. Meiner Erfahrung nach bringen die Anwender TAB und ENTER dann allerdings schnell durcheinander. Sie müssen in jeder Windows-Anwendung überlegen, welche Taste welche Funktion auslöst. Also wir haben das wieder ausgebaut.

2.298 Beiträge seit 2010
vor 13 Jahren

Da hast du natürlich vollkommen Recht, im normal Fall gilt Enter in Anwendungen für den Druck auf den Standartbutton (z.B. OK), bzw. zur Bestätigung einer Eingabe.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

C
chip777 Themenstarter:in
74 Beiträge seit 2010
vor 13 Jahren

Ihr habt mich überzeugt.

Ich werd die Funktion doch weglassen.

Danke für die Infos.

Gruß,

Martin