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?

questionAnswers(10)

yourAnswerToTheQuestion