C#【TextBox限制输入-KeyPress】

通过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;
            }
        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值