黑马程序员技术交流社区

标题: 第一个字符不能输入0的情况下怎么输入小数?? [打印本页]

作者: 李后量    时间: 2012-8-17 19:07
标题: 第一个字符不能输入0的情况下怎么输入小数??
  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的错误整数输入又能输入正确的小数!!

作者: 许庭洲    时间: 2012-8-19 12:57
先判断第一个字符是非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;
             }
      }              
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2