通过KeyPress事件 对TextBox输入进行限制
防止非法输入引起错误
handled 为true禁止输入!
常用的:
char.IsDigit 判断是否为数字
char.IsLetter 判断是否为字母
char.IsLower 判断是否为小写
char.IsUpper 判断是否为大写
char.ToLower 将小写转化为大写
char.ToUpper 将大写转化为小写
也可以用Ascll码
只能输入正整数
端口等
private void tb_uint_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar) || e.KeyChar == 8)
e.Handled = false;
else
e.Handled = true;
}
常规数字类输入
---只允许输入数字、小数点、符号、退格符
void textbox_KeyPress(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 (((TextBox)sender).Text != "")
{
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;
}
}
频率类输入
不能有负数
private void freq_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar) || e.KeyChar == 8 || e.KeyChar == (char)('.'))
e.Handled = false;
else
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;
}
}
IP类
private void IP_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar) || e.KeyChar == 8 || e.KeyChar == (char)('.'))
e.Handled = false;
else
e.Handled = true;
if (e.KeyChar == (char)('.') && ((TextBox)sender).Text == "")
{
//MessageBox.Show("第一位不能为小数点");
e.Handled = true;
}
if (e.KeyChar != (char)('.') && ((TextBox)sender).Text == "0" && (e.KeyChar != 8))
{//这里要注意退格符是可以输入的
//MessageBox.Show("第一位是0,第二位必须为小数点");
e.Handled = true;
}
}