Szybkie szukanie
Słowo kluczowe:
sobota, 11 luty 2012
Start arrow Tips & Tricks arrow Jak zapobiec wpisywaniu liter w okienko przeznaczone dla cyfr?
Jak zapobiec wpisywaniu liter w okienko przeznaczone dla cyfr? Drukuj E-mail
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

Komentarze
Dodane przez p_rys w dniu - 2008-10-02 23:54:49
:grin

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!

< Poprzedni   Następny >

Menu główne
Start
Teoria
VB.NET
Api
Tips & Tricks
Warsztat
VBMagazine
Pliki
Forum
Literatura
Ankiety
Linki
Szukaj
Wyślij program
Napisz do nas
Redakcja
Logowanie
Login

Hasło

Zapamiętaj mnie
Nie pamiętasz hasła?
Nie masz konta? Załóż je sobie
Gościmy
Aktualnie jest 38 gości online
Statystyka
Użytkownicy: 11345
Newsy: 237
Odnośniki: 48
Odwiedzających: 4327517
Mambo is Free Software released under the GNU/GPL License.