.NET (VB08) Accettare in un textbox solo certi “tasti” (nell’esempio i numeri e la virgola)

keypreview

Independent Codes

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?)





Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *