我怎样才能使TextBox只接受数值

时间:2016-06-14 07:07:30

标签: c#

我想知道文本框是否有正确的方法只接受数字。

例如,我希望它“停止”用户填写“abcd1234”,只让他填写“1234”

提前致谢!

3 个答案:

答案 0 :(得分:8)

我尝试了以下代码,并为我工作得很好。 textbox将允许用户仅输入数字

private void txtbox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) 
    {
        e.Handled = true;
    }
}

你也可以试试这个

e.Handled = !(char.IsDigit(e.KeyChar));

答案 1 :(得分:0)

您可以使用以下代码行评估输入:

if (txtNumericBox.Text.All(char.IsDigit))
   // Proceed
else
   // Show error

如果使用getter和setter将其定义为字符串属性,则可以使用如下所示:

private string _MyNemericStringr;

public string MyNemericString
{
    get { return _MyNemericStringr; }
    set {
        if (value.All(char.IsDigit))
            _MyNemericStringr = value;
        else
            _MyNemericStringr = "0";
    }
}

在第二个示例中,如果为属性分配任何非数字值,则它将返回值"0"。否则会像往常一样处理。

答案 2 :(得分:-1)

你可以尝试这个简单的代码。

private void keypressbarcode(object sender, KeyPressEventArgs e)
{
        e.Handled = !(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back);
}

它只接受数字值和退格