我想针对负值和字符验证此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;
}

最佳答案

您需要将第一个&&运算符替换为||,并将其移至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;
}

关于c# - 为什么TextBox验证不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37108411/

10-09 08:39