asp.net

C#-TextBox限制文本\Text输入-只能输入数字\大小写字母\计算

2024-04-24

限制TextBox输入(KeyPress事件)

为TextBox添加输入限制

-只允许输入数字

-只允许输入大小写英文字母等等

(KeyPress事件)

注意handled的true和false不要理解反了


常用的:

<1>判断是否为字母 char.IsLetter;

<2>判断是否为小写 char.IsLower;

<3>判断是否为大写 char.IsUpper;

<4> 将小写转化为大写 char.ToLower;

<5>将大写转化为小写 char.ToUpper;

<6>判断是否为数字char.IsDigit;

也可以用Ascll码


举例说明:

---只允许输入数字和退格符

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {//Ascll码只演示一次

            if ((e.KeyChar >= '0' && e.KeyChar <= '9')||e.KeyChar==8)

                e.Handled = false;

            else

                e.Handled = true;

        }


private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

            if (char.IsDigit(e.KeyChar)||e.KeyChar==8)

                e.Handled = false;

            else

                e.Handled = true;

        }



---只允许输入大小写英语字母、数字、退格符

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

            if (char.IsLetterOrDigit(e.KeyChar)||e.KeyChar==8)

                e.Handled = false;

            else

                e.Handled = true;

        }


---只允许输入数字、小数点、符号、退格符

  void textChecker(object sender, KeyPressEventArgs e)

        {   //判断输入是否符合规范

            if ((!char.IsDigit(e.KeyChar)) && e.KeyChar != 8 && e.KeyChar != (char)('.') && e.KeyChar != (char)('-'))

            {//允许输入数字、退格符、小数点、删除键和负号  

                MessageBox.Show("请输入正确的数字");

                e.Handled = true;

            }

            if (e.KeyChar == (char)('-'))

            {

                if (txt1.Text != "")

                {//这里的txt1需要改成应用处的TextBox的名称,或者可以给这个函数多传递一个参数,再在此处添加一个switch来判断

                    MessageBox.Show("负号位置错误");

                    e.Handled = true;

                }

            }            

            if (e.KeyChar == (char)('.') && ((TextBox)sender).Text == "")

            {

                MessageBox.Show("第一位不能为小数点");

                e.Handled = true;

            }

            if (e.KeyChar == (char)('.') && ((TextBox)sender).Text.IndexOf('.') != -1)

            {

                MessageBox.Show("小数点只能输入一次");

                e.Handled = true;

            }          

            if (e.KeyChar != (char)('.') &&((TextBox)sender).Text=="0"&&(e.KeyChar!=8))

            {//这里要注意退格符是可以输入的

                MessageBox.Show("第一位是0,第二位必须为小数点");

                e.Handled = true;

            }           

            if (((TextBox)sender).Text == "-" && e.KeyChar == (char)('.'))

            {

                MessageBox.Show("第一位是负号,第二位不能为小数点 ");

                e.Handled = true;

            }

        }