如何强制文本框只接受2.1到9.5之间的数字

时间:2016-03-21 16:46:17

标签: c# winforms

在C#和windows表单应用程序中,

我有一些文本框,我想强制用户只能输入数字而只是一个特定的数字,例如在这种情况下我的数字范围是{2.1,2.2,...,9.4,9.5}

这就是我强制文本框只接受数字的方式:

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!((int)e.KeyChar>=48 && (int)e.KeyChar<= 57 || (int)e.KeyChar ==8))
        {
            e.KeyChar = (char)27;
        }
    }

但我不知道如何为它设定范围:例如仅在{2.1到9.5}或{25到91}之间

2 个答案:

答案 0 :(得分:4)

对于WinForms,只需使用NumericUpDown

将其放在表单上,​​根据自己的喜好设置MinimumMaximumDecimalPlacesIncrement参数。

通过控件的.Value属性访问该值。

NumericUpDown

答案 1 :(得分:0)

为文本框添加regexvalidator控件并在其中使用正则表达式以确保只能输入您需要的数字。 我不会随便知道正则表达式,但它应该很容易。

像 -

<asp:RegularExpressionValidator ValidationExpression="Expression Goes Here" ControlToValidate="YourControl" ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionValidator>