|
Jak zapobiec wpisywaniu liter w okienko przeznaczone dla cyfr? |
|
|
|
Napisał Administrator
|
|
poniedziałek, 03 październik 2005 |
Ka?dy dobry program powinien by? g?upoto odporny.
Oznacza to, ?e powinien by? przygotowany na ka?de,
absolutnie ka?de posuni?cie u?ytkownika.
Takim posuni?ciem mo?e by? np. wpisywanie liter do
okienek przeznaczonych na cyfry. Mo?na temu zapobiec
wpisuj?c poni?szy kod do procedury text_change
If Not IsNumeric(Text1.Text) Then Text1.Text = "100"
Uniemo?liwia to wpisanie czegokolwiek innego ni? cyfra
do okienka Tex1. Gdy u?ytkownik b?dzie si? usilnie stara?
wpisa? litery, program niezmordowanie b?dzie zmienia?
zawarto?? okienka na 100
Inne rozwi?zanie Autor: Kris
Procedura odczytuje znak Ascii naci?ni?tego klawisza i
p
orównuje z list? podan? w Select Case.
Je?li danego znaku nie ma, wykonuje Case Else, gdzie przypisa?em znak pusty.
Nie kasuje tego co mozolnie uda?o si? ju? wprowadzi?.
Je?li chcesz wpisywa? przecinki(kropki) to musisz doda? kody Ascii kropki i
przecinka. Z kropk? lub przecinkiem jest ma?a nie?cis?o??.
VB nie przyjmuje przecinka przy odczytywaniu (w rezultacie odczyta tylko
liczb? przed przecinkiem). Trzeba wi?c zast?pi? podczas odczytu kodu
przecinka kodem kropki. Je?li natomiast wpiszesz dwie lub wi?cej kropek to
program odczyta tylko liczb? ca?kowit? ale si? nie sypnie.
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 8: KeyAscii = 8
Case 48: KeyAscii = 48 'kod 1
Case 49: KeyAscii = 49 'kod 2
Case 50: KeyAscii = 50 'kod 3
Case 51: KeyAscii = 51 ' ...
Case 52: KeyAsc
ii = 52
Case 53: KeyAscii = 53
Case 54: KeyAscii = 54
Case 55: KeyAscii = 55
Case 56: KeyAscii = 56
Case 57: KeyAscii = 57 'kod 0
Case Else: KeyAscii = 0 'gdy wcisniemy cos innego niz cyfra nic sie nie wyswietli
End Select
End Sub
Kolejna metoda Autor: Heretic
'Autor: Heretic
Sub TextBox_KeyPress(KeyAscii As Integer)
Dim KC As Integer
KC = KeyAscii
Select Case KC
' Tutaj cyfry i BKSP (mozna dopisac inne np. DEL, kropka itp.)
Case 48 To 57, 8
KeyAscii = KC
' A tu sa wszystkie niedozwolone znaki
Case Else
KeyAscii = 0
End Select
End Sub
|
Dodane przez p_rys w dniu - 2008-10-02 23:54:49 |
Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie. Tylko zarejestrowani użytkownicy mogą pisać komentarze. Powered by AkoComment 2.0! |