分享

确保文本框只能输入数字

 o0末人0o 2011-11-15
1、在form1中输入如下代码

        private string numberParam = String.Empty;//初始化变量
        private string charParam = String.Empty;
        private string floatParam = String.Empty;
        //设定
         private void initRegCheckValue(object sender, EventArgs e) 
          { 
              numberParam = charParam = floatParam = "";
           }
        private void getRegCheckValue(object sender, EventArgs e)
          {
           }
        private void checkNumberInput(object sender, EventArgs e)     //检查数字输入
        {
            ((System.Windows.Forms.TextBox)(sender)).Enter += new System.EventHandler(this.getRegCheckValue);
            ((System.Windows.Forms.TextBox)(sender)).Leave += new System.EventHandler(this.initRegCheckValue);
            string text = ((System.Windows.Forms.TextBox)(sender)).Text;
            string pattern = @"^[0-9]*$";
            if (text == "")
            {
                numberParam = text;
                return;
            }
            Match m = Regex.Match(text, pattern);   // 匹配正则表达式
            if (!m.Success)   // 输入的不是数字
            {
                ((System.Windows.Forms.TextBox)(sender)).Text = numberParam;   // textBox内容不变
                // 将光标定位到文本框的最后
                ((System.Windows.Forms.TextBox)(sender)).SelectionStart = ((System.Windows.Forms.TextBox)(sender)).Text.Length;
            }
            else   // 输入的是数字
            {
                numberParam = ((System.Windows.Forms.TextBox)(sender)).Text;   // 将现在textBox的值保存下来
            }
      }

2、将checkNumberInput事件关联到textBox的textchanged事件中。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多