PDA

View Full Version : Casella di testo e solo numeri (Visual Basic)


leon84
27-01-2003, 14:20
Come posso fare in modo che in una casella di testo l'utente possa inserire solo numeri interi o reali ?

bsummer
27-01-2003, 16:08
Usi l'evento keypresseddown (o na roba del genere) della textbox.
Tale evento di fornisce il codice del tasto premuto. Puoi fare un controllo se tale tasto e' tar quelli desidearti (numerico ad esempio) e quindi inoltrarlo alla textbox.

Aloha

leon84
27-01-2003, 16:16
Originally posted by "bsummer"

Usi l'evento keypresseddown (o na roba del genere) della textbox.
Tale evento di fornisce il codice del tasto premuto. Puoi fare un controllo se tale tasto e' tar quelli desidearti (numerico ad esempio) e quindi inoltrarlo alla textbox.

Aloha

Dove me lo restituisce sto codice ?

matpez
27-01-2003, 16:34
Ecco il codice che ti interessa:

Private Sub Text1_KeyPress(KeyAscii As Integer)

If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then
KeyAscii = 0
End If

End Sub

Ti spiego come funziona:

KeyAscii: parametro della funzione cge restituisce i codice ascii del tasto premuto

Nel IF isoli tutti i caratteri al di fuori del range 48-57 (i numeri in ascii) e il codice 8 che è il backspace (altrimento non puoi cancellare :( )

Appena premi un tasto nella tua txt entri in questa funzione (non stampa ancora niente dentro alla txt), se tutto va bene, quando esce dalla funzione stampa il keyascii, ma dato che a noi non interessa avere gli altri caratteri, impostando il keyascii=0 stamperò un carattere nullo...cioè niente!!! :p

ciaooooooooooooooooooooooo

leon84
27-01-2003, 16:43
Originally posted by "matpez"

Ecco il codice che ti interessa:

Private Sub Text1_KeyPress(KeyAscii As Integer)

If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then
KeyAscii = 0
End If

End Sub

Ti spiego come funziona:

KeyAscii: parametro della funzione cge restituisce i codice ascii del tasto premuto

Nel IF isoli tutti i caratteri al di fuori del range 48-57 (i numeri in ascii) e il codice 8 che è il backspace (altrimento non puoi cancellare :( )

Appena premi un tasto nella tua txt entri in questa funzione (non stampa ancora niente dentro alla txt), se tutto va bene, quando esce dalla funzione stampa il keyascii, ma dato che a noi non interessa avere gli altri caratteri, impostando il keyascii=0 stamperò un carattere nullo...cioè niente!!! :p

ciaooooooooooooooooooooooo

Ok grazie funziona ....

P.S. ho dovuto includere anche il punto perché si tratta di numeri reali

leon84
27-01-2003, 16:46
Per caso sai anche come risolvere il problema con Excel descritto nell'altro thread ?

matpez
27-01-2003, 17:14
mi spiace....non so e purtroppo non ho molto tempo per fare delle cose nuove in sto periodo :(

leon84
27-01-2003, 17:15
Originally posted by "matpez"

mi spiace....non so e purtroppo non ho molto tempo per fare delle cose nuove in sto periodo :(

OK