本人想对TextBox进行输入控制,只准输入数字,不准输入英文等其他字符
    请问如何写代码。

解决方案 »

  1.   

    /// <summary>
            /// 数字类型检查
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void ContentBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                if (!checkData(e.KeyChar, ((TextBox)sender).Text, textType))
                {
                    e.Handled = true;
                }
            }
    /// <summary>
            /// 验证数字串
            /// </summary>
            /// <param name="numberString">待验证字符串</param>
            /// <returns>bool</returns>
            public static bool CheckNumberRegex(string numberString)
            {
                string myMatch = @"^(\+)?0*[1-9]+[0-9]*$";
                Regex r = new Regex(myMatch);
                return r.IsMatch(numberString);
            }
     public static bool checkData(char chr,string sData)
            {
               sData += chr.ToString();
               return UseRegex.CheckNumberRegex(sData);
            }
      

  2.   

    /// <summary>
            /// 数字类型检查
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void ContentBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                if (!CheckDataType.checkData(e.KeyChar, ((TextBox)sender).Text))
                {
                    e.Handled = true;
                }
            }
            /// <summary>
            /// 验证字符串
            /// </summary>
            /// <param name="chr"></param>
            /// <param name="sData"></param>
            /// <returns></returns>
             public static bool checkData(char chr,string sData)
            {
               sData += chr.ToString();
               return UseRegex.CheckNumberRegex(sData);
            }
            /// <summary>
            /// 验证数字串正则表达式
            /// </summary>
            /// <param name="numberString">待验证字符串</param>
            /// <returns>bool</returns>
            public static bool CheckNumberRegex(string numberString)
            {
                string myMatch = @"^(\+)?0*[1-9]+[0-9]*$";
                Regex r = new Regex(myMatch);
                return r.IsMatch(numberString);
            }
      

  3.   

    private void textBox3_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) || ( e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad))
    {
    }
    else
    {
    sendkeys("back");
    }
    }
      

  4.   


    function isNumeric(strNumber) 
    {
    return (strNumber.search(/^(-|\+)?\d+(\.\d+)?$/) != -1);
      

  5.   

    windsandy(风中飘絮) 整解!
      

  6.   

    使用验证控件和正则表达式,下面代码要求只让用户输入5位数字
    <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server"
                ControlToValidate="TextBox1"
                ValidationExpression="^\d{5}$"
                Display="Static"
                Font-Name="verdana" 
                Font-Size="10pt">
                   必须是 5 位数字
            </asp:RegularExpressionValidator>
      

  7.   

    onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
      

  8.   

    http://www.codeproject.com/vb/net/validtext3.asp
      

  9.   

    在TextBox的TextChanged事件中用正则判断TextBox.Text是否符合要求。false时Remove掉最后一个字符!!