怎么判断文本框中输入的字符串是一个在0-99之间的数字?
而当输入字符时让其不能输入呢?有什么比较简单的方法!

解决方案 »

  1.   

    使用正则表达式啊,在KeyPress事件中进行判断
    正则表达式为 [1-9]?[0-9]
      

  2.   

    private string text = "";
    void TextBox1TextChanged(object sender, EventArgs e)
    {
    TextBox box = sender as TextBox;
    string newtxt = box.Text.ToString();
    System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^\d{0,2}$");
    if(!reg.IsMatch(newtxt))
    {
    box.Text = text;
    box.SelectionStart = text.Length;
    }
    else
    {
    text = newtxt;
    }
    }
      

  3.   

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                string str = textBox1.Text;
                int i;
                if (Int32.TryParse(str, out i))
                {
                    if (i < 0 || i > 99)
                    {
                        MessageBox.Show("请输入0~99之间的整数");
                    }
                }
                else
                {
                    MessageBox.Show("只能输入数字!");
                }
            }
      

  4.   

    public bool isnum(string s)
    {
    for (int i = 2; i < s.Length; i++)
    {
    if (!char.IsNumber(s, i))
    {
    return false;
    }
    }
    return true;
    } private void button2_Click(object sender, System.EventArgs e)
    {
    if ((!isnum(textBox1.Text)) || textBox1.Text == "")
    {
    MessageBox.Show("请输入数字");
    return;
    }
      

  5.   

         if ((e.KeyChar < 48 && e.KeyChar != 8 && e.KeyChar != 16) || e.KeyChar > 57)
                {
                    e.Handled = true;
                    MessageBox.Show("请输入数字!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtMyQQNum.Text = "";
                }另外判断一下长度if判断会吧
      

  6.   

    /// <summary>
            /// 屏蔽非数字键
            /// </summary>
            protected override void OnKeyPress(KeyPressEventArgs e)
            {
                base.OnKeyPress(e);            if (this.ReadOnly)
                {
                    return;
                }
                
                // 特殊键, 不处理
                if ((int)e.KeyChar <= 31)
                {
                    return;
                }            // 非数字键, 放弃该输入
                if (!char.IsDigit(e.KeyChar))
                {
                    e.Handled = true;
                    return;
                }
            }收藏的一个东西
      

  7.   


    int getInt = null;
    try
    {
      int temp = int.Parse(textBox1.Text);
      if(temp < 0 || temp >99)
      {
        MessageBox.Show("请输入大于0 小于 99数字!");
        return;
      }
      getInt = temp;
    }
    catch
    {
      MessageBox.Show("请输入数字!");
    }
      

  8.   

    1.用正則表達式
    2.如果不会的话.VS自带的Regularexpress这个验证控件.
    比如它的属性里表达就可能选第二个:french postal code:\d{5}五位整数.
      

  9.   

    注意,输入不仅仅是key,还有可以能是拷贝粘贴