Zum Inhalt springen

VB:NET: KeyDown-Event


aline234

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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? :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...