VB-Homepage Tipp 107

In Textfeldern nur Zahleneingabe annehmen

Die Problematik bestand darin, das ein Nutzer des Programms in ein Textfeld eine Zahlenkombination eingeben soll.
Wenn er nun sich vertipt oder bewußt ein anderes Zeichen eingibt, dann sollte dieses nicht angezeigt werden.
Um dies zu bewerkstelligen dachte ich mir, geh in die KeyPress Aktion, frage den KeyAscii Wert ab (< 48 und >57) und wenn der Wert dem entspricht, schneide das letzte Zeichen mit MID oder RIGHT ab.

Dem liegt aber ein Denkfehler zu Grunde, denn in dem Moment wenn der KeyAscii abgefragt wird, steht das Zeichen noch nicht in der Textbox und wenn es das Erste ist, erfolgt sogar eine Fehlermeldung.
Nun hab ich mein Problem damit gelößt, das ich zwar weiterhin den KeyAscii Wert abfrage und ermittle ob der Ascii Code eine Zahl darstellt, aber wenn dem nicht so ist, wird der KeyAscii auf 0 gesetzt und so nicht angezeigt.
Ich gebe zu keine, große Sache, aber wems nützt !
Das ganze sieht dann so aus

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub

Tipp-Download

Quelle :

Zurück zur Übersichtsseite