C#:在窗体中放了多个文本框,我想要在里面输入数字,但要规定它不能超出范围,若超出范围,那就要提示

C#:在窗体中放了多个文本框,我想要在里面输入数字,但要规定它不能超出范围,若超出范围,那就要提示“输入错误”。这该怎么做,我不想要在每个文本框的语句里写,可以有一个按钮全部控制吗?还是写一个调用函数?我是新手,可否给个完整代码,如何去做?

你可以用numericUpDown 控件!


或者每个文本框都添加KeyPress 事件,比较多,但每个文本框里面就复制一行语句 InputDecimalDot(sender, e);

//文本框事件 你自己的

  private void txtServiceRate_KeyPress(object sender, KeyPressEventArgs e)
        {
          InputDecimalDot(sender, e);
        }
        
        
 ///<summary> 
 ///公共调用的方法 
        ///文本框只能输入数字和小数点,并且不能大于等于100
        ///</summary>  
        public void InputDecimalDotAndLessHundred(object sender, System.Windows.Forms.KeyPressEventArgs e)
        {
            //检测是否已经输入了小数点
            bool IsContainsDot = ((TextBox)sender).Text.Contains(".");
            int index = ((TextBox)sender).Text.Trim().IndexOf(".");
            string l_strText = ((TextBox)sender).Text;
            double l_dTest = 0;
            if (double.TryParse(l_strText, out l_dTest) && double.Parse(l_strText) >= 100)
            {
                MessageBox.Show("不能大于100", "提示信息");
                e.Handled = true;
            }

            if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8) && (e.KeyChar != 46) && (e.KeyChar != 13))
            {
                MessageBox.Show("只能输入数字", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                e.Handled = true;
            }
            else if (IsContainsDot && (e.KeyChar == 46))
            {
                //如果输入了小数点,并且再次输入
                e.Handled = true;
            }
            else if (index == 0)
            {
                ((TextBox)sender).Text = "";
            }
        }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-03
亲,直接把所有的文本框都绑定到一个blur事件就可以了 ,里面判断一下name到底是哪个,指定的范围是多少追问

我刚开始自学,什么都不太懂啊,可否给个代码啊

我刚开始自学,什么都不太懂啊,可否给个代码啊

追答

亲,写了一个小例子,用vs2012写的,你自己看看吧


追问

在哪啊

追答

附件那里不是吗,手机端看不到,要电脑打开这个页面才看得到

本回答被提问者采纳
相似回答