Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[gelöst] Tab Event auch über Enter Taste auslösen
chip777
myCSharp.de - Member



Dabei seit:
Beiträge: 74

Themenstarter:

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

beantworten | zitieren | melden

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
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von chip777 am .
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

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 | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
chip777
myCSharp.de - Member



Dabei seit:
Beiträge: 74

Themenstarter:

beantworten | zitieren | melden

Hallo inflames2k,

danke für den Tipp. Der zweite Parameter ist klar, aber wie kann ich den ersten auf mein aufrufendes Objekt setzten?
private Nachricht | Beiträge des Benutzers
rollerfreak2
myCSharp.de - Member

Avatar #avatar-3271.jpg


Dabei seit:
Beiträge: 916

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

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 | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
mg.net
myCSharp.de - Member



Dabei seit:
Beiträge: 153

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2.296

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von inflames2k am .
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
chip777
myCSharp.de - Member



Dabei seit:
Beiträge: 74

Themenstarter:

beantworten | zitieren | melden

Ihr habt mich überzeugt.

Ich werd die Funktion doch weglassen.

Danke für die Infos.

Gruß,

Martin
private Nachricht | Beiträge des Benutzers