textBox里怎样限制输入的数字大小,出现提示后按提示上的确定键后textBox的数据刷新为空
 这是我编译的代码,可以只能提示,并不能刷新,按下button错误的数据还是可以入数据库里
      private void textBox1_TextChanged(object sender, EventArgs e)
        {
            {
                TextBox tb = (TextBox)sender;                if (tb.Text == ""
                || Convert.ToInt32(tb.Text) > 5 ||
                Convert.ToInt32(tb.Text) < 0)
                    MessageBox.Show("答案有误,请从选");
            }

解决方案 »

  1.   

    bool bSave = false;
    private void textBox1_TextChanged(object sender, EventArgs e)
      {
      TextBox tb = (TextBox)sender;  if (tb.Text == ""
      || Convert.ToInt32(tb.Text) > 5 ||
      Convert.ToInt32(tb.Text) < 0)
      MessageBox.Show("答案有误,请从选");
    bSave = false;
      }
    else
    {
    bSave = true;
    }private void button1_Click(object sender, EventArgs e)
      {
    if(!bSave)
    {
    MessageBox.Show("答案有误,不能保存");
    return;
    }
    }
      

  2.   

    运行不了,无效的表达式项“else”
      

  3.   


    LZ是不是直接copy过去了  我晕死   程序的括号差了一个
      

  4.   

    e.handle=(e.keychar>'0')||(e.keychar<'5')?true:false;
    你写这句代码在你的textchanged事件里就行了
      

  5.   

    或者还要加上e.keychar=(char)8,将backspace键加上可以敲
      

  6.   


    bool bSave = false;
    private void textBox1_TextChanged(object sender, EventArgs e)
      {
      TextBox tb = (TextBox)sender;  if {(tb.Text == ""
      || Convert.ToInt32(tb.Text) > 5 ||
      Convert.ToInt32(tb.Text) < 0)
      MessageBox.Show("答案有误,请从选");
    bSave = false;
      }
    else
    {
    bSave = true;
    }
    }
    private void button1_Click(object sender, EventArgs e)
      {
    if(!bSave)
    {
    MessageBox.Show("答案有误,不能保存");
    return;
    }
    }
    ............改好了
      

  7.   

    这样写好些:
    首先将textbox的maxlength属性设置为1
    然后写代码:
      private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                e.Handled =( e.KeyChar > '0'&& e.KeyChar < '5' )||( e.KeyChar == (char)8 )? false : true;
                if (e.Handled)
                    MessageBox.Show("您的输入不正确");        }
      

  8.   

     private void textBox1_TextChanged(object sender, EventArgs e)
      {
     
        try
         {
           int inVal = Convert.ToInt32(textBox1.text.trim())
           if(inVal >5||inVal <0)
           MessageBox.Show("答案有误,请从选");
         }
        catch
         {
            MessageBox.Show("答案有误,请输入数字");
            textBox1.text ="";
         }
      }
      

  9.   

    建议楼主用前台的js写,简单又方便。
    function TextChanged()
    {
        var txt=document.getElementById("TextBox1").value;
        var txtnum=txt*1; 
        if (txt== ""||txtnum> 5 ||txtnum< 0)
        {
          alert("答案有误,请从选");
          document.getElementById("TextBox1").value="";
        }
    }再在下面的TextBox1控件中加上onblur="TextChanged()"就可以了!
      

  10.   

    textBox1_TextChanged理解TextChanged事件先吧!
      

  11.   

    为什么要纠结于TextBox,用个NumericUpDown,再设置最大最小值不更好吗?
      

  12.   


    function onlyNum() {
                var k = window.event.keyCode;
                if ((k == 46) || (k == 8) || (k == 189) || (k == 109) || (k == 190) || (k == 110) || (k >= 48 && k <= 57) || (k >= 96 && k <= 105) || (k >= 37 && k <= 40))
                { }
                else if (k == 13) {
                    window.event.keyCode = 9;
                }
                else {
                    window.event.returnValue = false;
                }
            }
    在TextBox里面  onkeydown="onlyNum()" 
    这个是只能输入数字,‘-’,‘.’ 的一个方法,放在javascript里面,这样只用判断是否输入正确就可以了,不用做字符串的处理
      

  13.   


    设置NumericUpDown,最小值0,最大值5
    用户根本不会输错值,也就不会弹出恼人的MessageBox,从更好的用户体验来说,也不该选择TextBox
      

  14.   

    else
    {
    bSave = true;
    }
    你都把他卸载外面了
    找不到与他匹配的if当然会提示无效
    写在textchanged里面
      

  15.   

    LZ还没告诉我们是WinForm还是Web?
      

  16.   

    在保存事件里,不就行了吗!private void button1_Click(object sender, EventArgs e)
      {
       int NumA=0;
        ///判断输入的是数字
         try
          {
            int NumA=(int)textBox1.text;
           }catch
           {
               MessageBox.Show("答案有误,不能保存");
               textBox1.Text=string.Empty;
               reutrn;
            }
           //假设范围为0-5
           if(NumA<0 || NumA>5)
            {
              MessageBox.Show("答案有误,不能保存");
              textBox1.Text=string.Empty;
              return;
             }
       }
      

  17.   

    ……数字大小的位数是不能直接禁止输入的,只能是当它的text属性改变时,你去判断,如果条件不符的话清空。
        还有一个:最好不要直接 Convert.Toint32(str);//如果str不是数字岂不是出现异常了?
      

  18.   

    对,应该用ascII码来限制输入的数字,不能直接用Convert.Toint32(str)以免误操作出异常
      

  19.   

    同学你应该先限制输入的只能是数字,这个你百度一下就嗷嗷多,
    然后呢你那个说的提示完还可以写入,当然可以写入阿,你提示完没有做任何操作,既没Break 也没 Return,