Text box con Numeri interi




Private Sub txtOnlyInteger_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles txtOnlyInteger.KeyPress

' Accetto solo l'immissione di numeri interi


' Recupero il codice ascii del tasto digitato

' il tasto digitato e' memorizzato nella proprieta' "KeyChar"

' dell'oggetto System.Windows.Forms.KeyPressEventArgs

Dim KeyAscii As Short = Asc(e.KeyChar)

' I numeri interi hanno il codice ascii compreso tra

' 48 e 57. Devo comunque fare in modo che l'utente

' sia in grado di digitare anche il tasto BackSpace

' (ascii=8) e il tasto Canc (ascii=24), se il codice

' ascii non rientra in quelli ammessi, lo imposto io

' su Zero, che e' il carattere nullo.

If KeyAscii < 48 And KeyAscii <> 24 And KeyAscii <> 8 Then
KeyAscii = 0
ElseIf KeyAscii > 57 Then
KeyAscii = 0
End If

' Aggiungo un'ulteriore finezza facendo in modo che lo

' zero sia ammesso, ma non come primo carattere, lo faccio

' controllando la lunghezza del testo

If e.KeyChar = "0" And txtOnlyInteger.TextLength = 0 Then
KeyAscii = 0
End If

' Alla fine reimposto il KeyChar, che sara' uguale a zero

' per i caratteri non consentiti (e quindi nella TextBox

' non comparira' nulla)

e.KeyChar = Chr(KeyAscii)

End Sub

https://www.settorezero.com/wordpress/vbnet-accettare-in-una-textbox-soltanto-numeri-o-caratteri-predefiniti/#Consentire_la_sola_immissione_di_numeri_interi










( textboxconnumeriinteri.html )- by Paolo Puglisi - Modifica del 17/12/2023