
Questo articolo fa parte del progetto Independent Codes
Ho ricevuto una richiesta da un lettore del blog: accettare in un textbox solo certi valori ed in particolare solo numeri o la virgola, ecco la soluzione:
Prima di tutto bisogna far sì che il form in cui stiamo lavorando abbia attiva la proprietà “Keypreview” (come si vede nell’immagine allegata al post), quindi, nel caso si abbiano più textbox (ed è probabile..) bisogna fare in modo che solo in quelli interessati, ci sia il controllo e l’esclusione dei tasti non voluti (ad es. se c’é un textbox per un ipotetico “nome prodotto” ci interesserà accettare anche le lettere), nondimeno possiamo anche, fin che ci siamo, applicare qualche piccola regola ad esempio per la virgola (non accettarla come primo carattere e accettarla una sola volta all’interno della nostra stringa).
Qui sotto trovate il codice del form.
Public Class Form1
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If Me.Tag = “nums” Then
If (e.KeyCode >= 48) And (e.KeyCode <= 57) Or (e.KeyCode = 188) Or (e.KeyCode = Keys.Back) Or (e.KeyCode = Keys.Cancel) Or (e.KeyCode = Keys.Left) Or (e.KeyCode = Keys.Right) Then
If e.KeyCode = 188 Then
If (TextBox1.Text.Length > 0) And (InStr(TextBox1.Text, “,”) = False) Then
Else
e.SuppressKeyPress = True
End If
End If
Else
e.SuppressKeyPress = True
End If
End If
End Sub
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
Me.Tag = “nums”
End Sub
Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
Me.Tag = “”
End Sub
End Class
Se avete trovato interessante questo codice e, come spero, vi ha risolto qualche problema, per favore DONATE su paypal tramite l’apposito pulsante! (un caffé fa sempre piacere, no?)