【问题标题】:How to make a text-box accept only numeric characters?如何使文本框只接受数字字符?
【发布时间】:2011-04-28 06:39:55
【问题描述】:

如何让文本框只接受数字字符 (0-9) ?如果它包含任何字母或符号,则给出错误消息。

【问题讨论】:

    标签: vb.net winforms textbox


    【解决方案1】:

    您可以捕获事件 KeyDown 并检查 e.KeyCode 是否为数字,如果需要,将其丢弃。
    您可以尝试的另一件事是使用IsNumeric(txt.Text)。

    【讨论】:

      【解决方案2】:

      这篇MSDN 文章将对您有所帮助:

      【讨论】:

        【解决方案3】:

        您可以使用正则表达式,例如:^(\d{0,11})(.\d{0,2})?$ 这将允许小数点左侧 0-11 位和小数点右侧 0-2 位。

        如果你有 Ajax 控件,你可以使用过滤文本框扩展器 <cc1:FilteredTextBoxExtender id="FilteredTextBoxExtender8" runat="server" TargetControlID="YourTextBox" FilterType="Custom,Numbers" ValidChars="." > </cc1:FilteredTextBoxExtender>

        或者你也可以试试 Marco 的方法。

        【讨论】:

        • 另外我怎样才能让用户输入 + 和 - 符号
        • @Failed_Noob 你在使用 Visual Studio 吗?如果是,是什么版本?如果没有......那么你是如何创建 Winform 的?试着看看这个链接msdn.microsoft.com/en-us/library/ms996428.aspx
        • 将 myRegEx 调暗为新 System.Text.RegularExpressions.Regex("^(\d{0,11})(.\d{0,2})?$") If myRegEx.IsMatch( YourTextBox.text) Then ' 可以并允许输入的文本 Else ' 不行。然后显示一条错误消息,说明仅包含 2 位小数和“-”或“+”的数字。结束如果
        • 在验证下的工具箱中,将正则表达式验证器拖放到您的表单中。在此控件的属性中,您可以选择要验证的控件:您的文本框。将显示设置为静态、动态、无。添加验证表达式:^(\d{0,11})(.\d{0,2})?$。设置 ErrorMessage:此字段不能超过 11 位数字和 2 位小数。等等。您的标记应如下所示:
        • &lt;asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="YourTestBox" Display="Dynamic" ErrorMessage="RegularExpressionValidator" ValidationExpression="^(\d{0,11})(.\d{0,2})?$ SetFocusOnError="True""&gt;&lt;/asp:RegularExpressionValidator&gt; 测试注册。表达式只需将文本添加到文本框并移除文本框上的焦点。应显示错误消息。为了允许用户输入 + 和 - 符号,我认为正则表达式的语法是:^([+-]?\d{0,11})(.\d{0,2})?$ OR ^[+ -]?(\d{0,11})(.\d{0,2})?$.我认为第一个是正确的。
        【解决方案4】:

        这将只允许数字数据和退格

        Keypress事件下

         if ((!char.IsNumber(e.KeyChar)) && !(e.KeyChar == (char)Keys.Back))
                {
                    e.Handled = true;
                }
        

        【讨论】:

          【解决方案5】:

          我在这里使用 pincode 文本框名称一个 pin 码和 ID 作为 txtPinCode

          你只是写在文档函数开始下的代码之上 让我们编写这段代码并检查一次

          $("#").numeric();

          谢谢 阿克雷迪

          【讨论】:

            【解决方案6】:
            If Asc(e.KeyChar) <> 13 AndAlso Asc(e.KeyChar) <> 8 AndAlso Not IsNumeric(e.KeyChar) Then
                MessageBox.Show("Please enter numbers only")
                e.Handled = True
            End If
            

            【讨论】:

              猜你喜欢
              • 2010-10-21
              • 2022-06-28
              • 2011-06-15
              • 2012-02-19
              • 2015-12-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-12-05
              相关资源
              最近更新 更多