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 |