TextBox只允许输入数字或者两位以下的小数

 
private void fStartNum_KeyPress(object sender, KeyPressEventArgs e)
        {
            int kc = e.KeyChar;
            if (kc == 46)                       //小数点   
            {
                if (fStartNum.Text.Length <= 0)
                {
                    e.Handled = true;       //小数点不能在第一位   
                }
                else
                {
                    float f;
                    float oldf;
                    bool b1 = false, b2 = false;
                    b1 = float.TryParse(fStartNum.Text, out oldf);
                    b2 = float.TryParse(fStartNum.Text + e.KeyChar.ToString(), out f);
                    if (b2 == false)
                    {
                        if (b1 == true)
                            e.Handled = true;
                        else
                            e.Handled = false;
                    }
                }
            }
            else
            {
                if (kc != 8 && !Char.IsDigit(e.KeyChar))
                {
                    e.Handled = true;
                }
                else if (fStartNum.SelectionStart > fStartNum.Text.LastIndexOf('.') & fStartNum.Text.LastIndexOf('.') != -1 & fStartNum.Text.LastIndexOf('.') + 3 == fStartNum.Text.Length)
                {//小数不能超过两位
                    e.Handled = true;
                }
                else
                {
                    e.Handled = false;
                }
            }
        }

你可能感兴趣的:(TextBox只允许输入数字或者两位以下的小数)