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 |