A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. private void txtNum1_KeyPress(object sender, KeyPressEventArgs e)
  2.         {
  3.             TextBox txt = sender as TextBox;
  4.             if (e.KeyChar < '0' || e.KeyChar > '9')//判断输入的字符是否为数字
  5.             {
  6.                 e.Handled = true;
  7.             }
  8.             if (e.KeyChar == '.')//判断输入的字符是否是小数点
  9.             {
  10.                 if (txt.SelectionStart == 0)//判断小数点是否在第一个位置
  11.                 {
  12.                     e.Handled = true;
  13.                 }
  14.                 else
  15.                 {
  16.                     if (txt.Text.IndexOf('.') == -1)//判断是否已经有小数点了
  17.                     {
  18.                         e.Handled = false;
  19.                     }
  20.                 }
  21.                
  22.             }
  23.             if (e.KeyChar == 8)//判断输入的字符是否为backspace
  24.             {
  25.                 e.Handled = false;
  26.             }
  27.             //if (txt.SelectionStart == 0 && e.KeyChar == '0')//判断输入的第一个字符是否为0
  28.             //{
  29.             //    e.Handled = true;
  30.             //}
复制代码
视频里那个关于combox的有这么一题,是做四则运算的,但如果按照视频里的解法的话第一个字符可以是0,如果加上我这最后几行代码的话就又不能输入小数了,求个解法能满足既能阻止第一个字符是0的错误整数输入又能输入正确的小数!!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览
先判断第一个字符是非0,然后判断输入的字符是否是小数点。
if (txt.SelectionStart == 0 && e.KeyChar == '0')//判断输入的第一个字符是否为0
{
       e.Handled = true;
}
else  if (e.KeyChar == '.')
{
       if (txt.SelectionStart == 0)
      {
            e.Handled = true;
      }
      else
      {
             if (txt.Text.IndexOf('.') == -1)//判断是否已经有小数点了
             {
                    e.Handled = false;
             }
      }              
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马