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