1. 程式人生 > >TextBox只允許輸入數字或者兩位以下的小數

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;
                }
            }
        }