Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VB:NET: KeyDown-Event

Empfohlene Antworten

Veröffentlicht

Morgen,

in meinem KeyDown-Event möchte ich nur auf Eingaben von Ziffern und Zeichen (also Buchstaben, Satzzeichen, ...) reagieren, nicht aber auf Eingaben wie STRG, F1, ESC etc. Allerdings mächte ich mir ein ellenlanges Case ersparen, in dem ich alle möglichen Keys einzeln angebe. Gibt es für diesen Fall eine etwas kürzere Lösung? Vielleicht sowas wie IsNumeric oder solche Späße?

Vielen Dank,

Aline

Was genau hast Du mit dem KeyDown Event vor? Falls es ne Textbox sein sollte welche nur Alphanumerische Zeichen zulässt, solltest Du auch daran denken die diversen Mouse Events abzufange und sie vor Copy Paste zu sichern.

Für das Filtern werde ich Dir Keine direkte Antwort geben, da solltest Du Dir einfach mal mit F1 die Hilfe anschauen ...

  • Autor

Es handelt sich um keine Textbox sondern um TextControl (hier mal ein paar Infos, falls du es nicht kennst: klick).

So und bei einer bestimmten Aktion innerhalb des Programms soll TextControl bei der Texteingabe eben anders reagieren. Deshalb benutze ich dafür das KeyDown-Event. Da dieses Event aber bei jeder Taste reagiert nützt mir das wenig, wenn ich nicht will, dass es bei jeder Taste reagiert ;) Es soll nur bei Texteingaben reagieren, also sämtliche Buchstaben, Satzzeichen und Ziffern. Nicht aber z.B. die STRG-taste, die ALT-Taste, Bild ab, Bild auf, alle F-Tasten, usw. usf.

Jetzt habe ich das alles in ein Case gejagt und die Liste is dementsprechend lang.

Meine konkrete Frage lautet jetzt: Wie kann ich diese Liste verkürzen? Gibt es vielleicht irgendetwas mit dem ich alle Buchstaben zusammenfassen kann? Kann man alle Zahlen zusammenfassen?

Und ich weiß natürlich wie ich auf Tastatureingaben reagiere ;) Ich will nur wissen ob man das vielleicht optimieren kann.

Aline

  • Autor

Ok, dann also doch etwas genauer:

In der Anwendung gibt es vorgefertigte Dokumentvorlagen. Nun ist es einstellungssache wie TextControl bei Eingaben in diese Vorlagen reagiert. Entweder ist die Schrift schwarz oder sie wird blau. Nun muss ich eben um diese blaue Schrift zu realisieren das KeyDown-Event benutzen, weil ich noch bestimmte andere Dinge vorher rauszufinden und dann zu entscheiden obs nun wirklich blau wird oder nun doch nicht und yadda yadda, ich will euch nich mit den Programmrichtlinien langweilen ;)

Das Ding an der Sache war jetzt aber die, dass 3 Zeilen in diesem Event mir dooferweise die Markierung innerhlab TextControls zerschießt. Soll heißen: Wenn ich Text markiert habe und z.B. STRG gedrückt habe war meine Markierung wieder weg. Und das is doof und geht natürlich nicht. Deshalb möchte ich alle diese Tasten bei dem Event ausschließen. Das sind also alle Tasten außer die Buchstaben, Satzzeichen und Ziffern. Denn nur bei diesen Tasten soll er tatsächlich das Event ausführen.

Und nochmal: Es funktioniert auch, es läuft alles so wie es laufen soll.

ABER!

Ich hab jetzt ein ellenlanges Case. Dieses Case möchte ich jetzt optimieren. Soll heißen, ich möchte nur wissen, ob man z.B. alle Buchstaben und alle Ziffern zusammenfassen kann. So das es am Ende irgendwie so aussieht:


Select Case e

   Case NurZiffern

End Select

Und ich möchte jetzt nur wissen, ob es solch eine Anweisung gibt oder nicht. Wenn ja, dann wie heißt es und wenn Nein, naja dann bleibt mein Case halt so wie es ist.

War das jetzt verständlicher? :)

If (e.eyCode >= Keys.A And e.KeyCode <= Keys.Z) Or (e.KeyCode >= Keys.D0 And e.KeyCode <= Keys.D9) Or (e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9) Then


End If

So kannst du nur

0 bis 9

NumPad 0 bis 9

und alle Buchstaben von A bis Z

eingeben.

Mit freundlichen Grüßen

Tobbe

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.