c# funzione che permette di inserire solo numeri in una TextBox

Standard

In c# purtroppo nel framework .net 3.5 non c’è un metodo che permette verificare se un valore (stringa) contiene o meno solo numeri (cosa che invece è presente in VisualBasic), ciò ad esempio potrebbe essere utile quando si deve creare una textbox in cui vuole fare inserire dall’utente solo valori numerici (come ad esempio un prezzo in euro). Naturalmente la funzione che i permette di “filtrare” i valori numerici in una stringa in c# è presto fatta:

1
2
3
4
5
6
7
8
9
10
11
12
static public bool IsNumeric(string valore)
{
try
{
Int32.Parse(numero);
return true;
}
catch (FormatException)
{
return false;
}
}

Questa funzione così da sola ci è poco utile, in quanto non ci permette in real-time di verificare se in una TextBox si stanno inserendo valori numerici o meno, e più precisamente non ci permette di evitare che l’utente non inserisca lettere o caratteri speciali. Ci viene incontro quest’altra funzione, che usa la precedente per ovviare a questi problemi:

1
2
3
4
5
static public void soloNumeri(KeyPressEventArgs ev)
{
if (!IsNumeric(ev.KeyChar.ToString()) && (((int)ev.KeyChar) != 8))
ev.Handled = true;
}

Continua a leggere