Hallo ihr lieben
Ich habe ein TabControl mit mehreren TabPages.
Zwei dieser Pages dienen der Darstellung, der Inhalte des angeschlossenen DataSets (Artikel, und Adressen).
Diese beiden Pages haben neben einem DataGridView noch ein paar Buttons zum bearbeiten der Daten (löschen, editieren und neu erstellen), sowie jeweils eine Textbox zum Filtern der entsprechenden Binding Source.
Da es auf diesen beiden TabPages eben nur diese eine Textbox gibt, in die eine Tastatureingabe erfolgen kann, möchte ich diese Eingabe über das KeyDown Event realisieren. (oder KeyUp / KeyPress - wenns einfacher ist), damit der User die Textbox nicht immer erst anklicken muss.
Mein Ansatz ist im Key Down Event der Form die gedrückte Taste abzufragen, dann die aktivierte Tab Page abzufragen und dann ggf. den entsprechenden Wert in die Textbox zu schreiben.
Aber dann müsste ich ja für alle 3 Bchstaben + 10 Zahlen immer den gleichen Befehl in meinem Code unterbringen.
Geht das eleganter / kürzer als mein Ansatz?
Ich habe ein TabControl mit mehreren TabPages.
Zwei dieser Pages dienen der Darstellung, der Inhalte des angeschlossenen DataSets (Artikel, und Adressen).
Diese beiden Pages haben neben einem DataGridView noch ein paar Buttons zum bearbeiten der Daten (löschen, editieren und neu erstellen), sowie jeweils eine Textbox zum Filtern der entsprechenden Binding Source.
Da es auf diesen beiden TabPages eben nur diese eine Textbox gibt, in die eine Tastatureingabe erfolgen kann, möchte ich diese Eingabe über das KeyDown Event realisieren. (oder KeyUp / KeyPress - wenns einfacher ist), damit der User die Textbox nicht immer erst anklicken muss.
Mein Ansatz ist im Key Down Event der Form die gedrückte Taste abzufragen, dann die aktivierte Tab Page abzufragen und dann ggf. den entsprechenden Wert in die Textbox zu schreiben.
Aber dann müsste ich ja für alle 3 Bchstaben + 10 Zahlen immer den gleichen Befehl in meinem Code unterbringen.
Geht das eleganter / kürzer als mein Ansatz?
VB.NET-Quellcode
- Private Sub FrmMainForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
- Select Case e.KeyCode
- Case Keys.Escape
- 'Shortcut für Suche löschen Button (Escape) in Tab Adressbuch
- If TCMain.SelectedTab Is TPAddressbook Then DelSearch()
- 'Shortcut für Suche löschen Button in Tab Artikel
- If TCMain.SelectedTab Is TPArticles Then DelSearchArticles()
- Case Keys.Enter
- 'Shortcut zum speichern der Rechnungsdaten
- If TCMain.SelectedTab Is TPOrders Then SaveOrder()
- Case Keys.A
- If TCMain.SelectedTab Is TPAddressbook Then TBSearch.AppendText("a")
- If TCMain.SelectedTab Is TPArticles Then TBSearchArticles.AppendText("a")
- 'usw. für alle Zeichen
- End Select
- End Sub