为什么文本框验证不起作用

Why TextBox validation doesn't work

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