我以前看了很多有关限制TextBox输入的例子,网上多的是各种各样的方法。
我在这里就随便说一下我觉得好用的办法。
我觉得用TextBox 的 KeyPress事件方法很实际,因为直接限制了键盘的输入(而且没必要弹出提示框,提示框我觉得很烦人)。
这里我以限制只能输入数字举个列子(我网上看到的加上我总结出来的方法)
我网上看到的正规表达式;
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar >= '0' && e.KeyChar <= '9' )
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
这段表达式网上随处可以找到,虽让可以限制TextBox只能输入数字。
但是出了一个问题:如果输入错误了这么办法?因为已经限制了键盘只能输入0-9这个几个数字,也就是说连Back也限制了。
解决思路1:在if里面加上Back不被限制的条件。
首先说下\b 如果在 [] 字符类中就表示Back。 转义字符 \b 是一个特例。
那么就可以这样写;
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar >= '0' && e.KeyChar <= '9'|| e.KeyChar=='\b')
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
解决思路2: 当键盘输入数字和Back之外的任何东西 e.Handled 就等于 true
这种思路从理论的角度是行动通的。但是我不会去用这种方法,原因很简单:这种方法不但要排除'a'-'z' 'A'-'Z' 还要排除键盘上众多的符号,太麻对了虽然我想到这种方法但是我不会用。
这个表达式举一反三(稍微修改)就可以限制经常限制的输入。