为什么TextBox验证不起作用

时间:2016-05-09 05:39:54

标签: c# winforms textbox

我希望针对负值和字符验证此TextBox(必须是不带小数的整数) 它适用于.,但我无法理解为什么它接受负值和字符?

我的代码是:

private void txtLifeMonths_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!Char.IsDigit(e.KeyChar) && (e.KeyChar == '.') && (e.KeyChar >= 0) && (e.KeyChar != (char)Keys.Back))
        e.Handled = true;
}

1 个答案:

答案 0 :(得分:1)

您需要将第一个&&运算符替换为||,并将其移至if语句的末尾,然后它应该可以正常工作。像这样:

private void txtLifeMonths_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!Char.IsDigit(e.KeyChar) && (e.KeyChar >= 0) && (e.KeyChar != (char)Keys.Back) || (e.KeyChar == '.'))
        e.Handled = true;
}