Walidacja - pola tekstowe pozwalające tylko na liczby dziesiętne
Używam następującego kodu do sprawdzania poprawności pola tekstowego.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = SingleDecimal(sender, e.KeyChar);
}
public bool SingleDecimal(System.Object sender, char eChar)
{
string chkstr = "0123456789.";
if (chkstr.IndexOf(eChar) > -1 || eChar == Constants.vbBack)
{
if (eChar == ".")
{
if (((TextBox)sender).Text.IndexOf(eChar) > -1)
{
return true;
}
else
{
return false;
}
}
return false;
}
else
{
return true;
}
}
Problem polega na tym, że Constants.vbBack pokazuje błąd. Jeśli nie użyłem Constants.vbBack, backspace nie działa. Jaką modyfikację mogę wykonać, aby pracować z backspace. Czy ktoś może pomóc?