Wie Interpretieren Sie die Enter-Tastendruck als Registerkarte in C#
Ich erst vor kurzem begann in der C# - Entwicklung, und ich arbeitete auf einer forms-basierten Projekt und ich bin versucht, führen Sie eine "tab" - Aktion, wenn der Benutzer auf eine form und drücken die Enter-Taste.
Ich weiß, die Antwort ist wahrscheinlich ziemlich einfach, aber ich bin ein Neuling in diesem Bereich.
mögliche Duplikate von Wie machen Sie die EINGABETASTE in einer TextBox handeln als TAB-Taste
Es ist erwähnenswert, dass dies ist nicht das standard-Verhalten unter Windows. Nicht nur überschreiben, es unterliegt verwirrend, Ihre Nutzer, sondern versuchen, um die Standardwerte zu überschreiben ist immer mehr Arbeit, als einfach zu handeln wie Ihre Plattform erwartet, dass Sie handeln. Code wie dieser kann leicht zu einem Albtraum Wartung, mit seltsamen bugs lauern.
Es ist erwähnenswert, dass dies ist nicht das standard-Verhalten unter Windows. Nicht nur überschreiben, es unterliegt verwirrend, Ihre Nutzer, sondern versuchen, um die Standardwerte zu überschreiben ist immer mehr Arbeit, als einfach zu handeln wie Ihre Plattform erwartet, dass Sie handeln. Code wie dieser kann leicht zu einem Albtraum Wartung, mit seltsamen bugs lauern.
InformationsquelleAutor | 2011-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Willkommen ALSO Tex,
Ich glaube, es gibt zwei Methoden, um dies zu erreichen, würde nur beinhalten das hinzufügen:
Option 1: Greifen Sie den Nächsten Kontrolle wenn ein Enter-Tastendruck durchgeführt wurde
In den Eigenschaften des Formulars, legen Sie die KeyPreview - Eigenschaft des Formulars auf
true
.Den code unten erfassen Sie Ihre "Enter-Drücken" - Ereignis und führen Sie die Logik, die du suchst:
Diese können für den Benutzer zum drücken von "Shift+Enter", um das Verfahren Register sowie.
Option 2: Verwenden der SendKeys Methode
Ich bin nicht sicher, ob diese Methode wird noch Häufig verwendet werden oder kann als ein "hack"? Ich würde empfehlen, die ersten ein, aber ich glaube, dass beide arbeiten für Ihre Bedürfnisse.
InformationsquelleAutor Rion Williams
Zuerst bereiten Sie ein Wörterbuch , dessen Schlüssel die erste Kontrolle und der Wert ist der zweite. Schleife über alle Steuerelemente in das Formular-Steuerelement-Sammlung, setzen Sie Sie in einer sortierten Liste von TabIndex, und konvertieren, dass zu einem Wörterbuch.
Bräuchte man code in das KeyPress-Ereignis für jedes Objekt oder Unterklasse TextBox, um diese Logik. So oder so, in das KeyPress-Ereignis, wenn die Eingabe, Eingeben, erhalten Sie die folgende Kontrolle aus dem Wörterbuch und die Nutzung Kontrollieren.GetFocus().
Hoffe, das hilft! Ich kann bieten weitere Besonderheiten wenn Sie möchten.
Was ist traurig ist, ich dachte eigentlich, es selbst zu tun, aber nur, weil ein ToolStripBar Steuerelemente nicht einen TabStop-Eigenschaft standardmäßig, landeten wir nur loswerden der tooltip in der Statusleiste ( wir waren in einem Stadium, wo dies möglich war ).
Das ist, weil die Objekte auf einer
ToolStrip
/ToolStripMenuBar
kann nicht den Fokus erhalten. Egal was Bühne, in das Projekt, würden Sie entdeckt haben, die Sie benötigt, um es loszuwerden, und ändern Sie Ihr design.InformationsquelleAutor
Die Sie behandeln können Tastatur-Ereignisse auf der Form-Ebene und auf die komplette application-level-Anwendung.AddMessageFilter und IMessageFilter-Schnittstelle.
Alle diese Ereignisse hatten "Behandelt" - Eigenschaft, die können Sie auf "True" gesetzt, wenn Sie behandeln einige Schlüssel manuell. (In deinem Fall Enter-Taste).
Hier ist ein Beispiel, wie trap Schlüssel-Ereignisse für beide Ebenen: Tastatur event-handling .NET-Anwendungen
InformationsquelleAutor HABJAN
InformationsquelleAutor Kirtish