c# TextBox只能输入数字的处理方法(完整版各种情况考虑在内,可根据需求灵活修改)...

      //选择文本框的事件窗口,找到按键输入的方法KeyPress,双击建立新的方法。
        /// <summary>
        /// textBox只能输入数字的处理方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBox6_KeyPress(object sender, KeyPressEventArgs e)
        {
            //判断按键是不是要输入的类型。
            var textBox1 = (TextBox)sender;
            if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 46 && e.KeyChar != 0x2D)
                e.Handled = true;
            //处理负数  
            if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length != 0)) e.Handled = true;
            //处理0(如果第一位为0的话只能输入小数点或者退格键)
            if ((int)e.KeyChar != 46 && e.KeyChar != '\b')
            {
                //分正负数两种情况
                if (textBox1.TextLength == 1 && textBox1.Text.Substring(0, 1) == "0")
                {
                    e.Handled = true; 
                }
                else if (textBox1.TextLength == 2 && textBox1.Text.Substring(0) == "-0")
                {
                    e.Handled = true; 
                }
            }
            
            //小数点的处理。
            if ((int)e.KeyChar == 46) //小数点
            {
                if (textBox1.Text.Length <= 0 || textBox1.Text.LastIndexOf('.') != -1)
                    e.Handled = true; //小数点不能在第一位(正数)或不能有多个小数点
                else if(textBox1.TextLength==1 && textBox1.Text.Substring(0) == "-")
                {
                    e.Handled = true; //小数点不能在第一位(负数)
                }
            }
        }
48代表0,57代表9,8代表空格,46代表小数点 ,0x2D代表负数, '\b'代表退格键
此代码考虑了各种情况,如不需要可以去除部分代码实现更简单的效果,例如如果不需要负数的就可以把所有关于负数判断的去掉,灵活运用

转载于:https://www.cnblogs.com/zhoushuang0426/p/10470349.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值