C# - Deaktivieren Sie die TAB-Taste
Habe ich diesen code:
diese.searchInput.KeyPress += new-System.Windows.Formen.KeyPressEventHandler(dies.inputKeypress); private void Keypress(object sender, KeyPressEventArgs e) { //Wenn Tab gedrückt wurde wenn(122 == (int)e.KeyChar) { switchTab(sTab); MessageBox.Karte(sTab); } }
Was es tut, ist, dass es setzt den Fokus auf ein anderes element.
Aber, wenn der Fokus auf ein Textfeld, und ich TAB drücke, es macht einfach einen tab in die TextBox und nicht den Fokus auf das nächste element.
Hat jemand eine Idee, wie kann ich diese Arbeit machen?
Habe ich versucht, e.Behandelt = wahr; aber das hat nicht funktioniert...
- Gibt es einen Grund, Sie explizit den Fokus verschieben, wenn tab gedrückt wird, anstatt auf dem default-Mechanismus und die tab-Reihenfolge?
- Ich tabindex-Eigenschaft auf eine Platte, und ich kann nicht sehen, alle Eigenschaften, die für zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, die Einstellung
AcceptsTab
auf dieTextBox
zufalse
?Edit:
Macht wenig Sinn. Ich lief eine kleine test-app und die tab-Taste bringt nur den Fokus Weg von der
TextBox
wenn seineAcceptsTab
undMultiline
Eigenschaften sind sowohltrue
, unabhängig von einem Ereignis-handler definiert sind, die fürKeyPress
.Sind Sie sicher, einige andere code nicht einstellen
AcceptsTab
zutrue
? Wenn Sie sind, bedeutet die EinstellungMultiline
zufalse
ändern Sie die tab-Verhalten überhaupt? Könnten Sie die post mehr von deinen relevanten code?Legen Sie die
AcceptsTab
- Eigenschaft des Textfeld, umfalse
?Müssen Sie erstellen eine Instanz des Steuerelements etwa so aus, und überschreiben Sie die folgenden Methoden:
Erstellen Sie die Lösung, dann ersetzt man regelmäßig TextBox mit dem neuen 'NoTabTextBox', zu finden, indem Sie unter dem Benutzer-Steuerelemente in der toolbox.
Diese erfassen Sie die Tab-Taste und mit Gewalt nichts zu tun.