在文本框失败时实现红色高亮的验证

本文关键字:红色 高亮 验证 实现 文本 失败 | 更新日期: 2023-09-27 18:01:43

如何使一个文本框突出显示红色当事件发生时,如c#无效的数字格式?

在文本框失败时实现红色高亮的验证

你的意思不是很清楚,但它听起来像是你想做的事情:

  • 当文本框中的文本发生变化时,连接一个事件处理程序
  • 在该事件处理程序中,检查文本是否可以解析为数字,理想情况下使用int.TryParse(而不仅仅是解析它并捕获异常)
  • 根据解析尝试是否成功,将文本框的前景色设置为红色或黑色

比如:

textBox.TextChanged += (sender, args) => {
    int ignored;
    bool valid = int.tryParse(textBox.Text, out ignored);
    textBox.ForeColor = valid ? Color.Black : Color.Red;
};

(可能有其他更复杂的方法来做到这一点,包括防止无效输入以…但是对于只是改变颜色,这将工作:)

你可以使用errorProvider。您可以高亮显示输入或闪烁输入,等等。

看看这篇文章来尝试一下。

http://msdn.microsoft.com/en-us/library/system.windows.forms.errorprovider.aspx Y2680

根据验证结果调整控件的属性ForeColor显示文本,例如label1.ForeColor = isInputValid ? Color.Black : Color.Red;其中isInputValid是布尔值设置,无论您在哪里进行验证

不清楚为什么Skeet在有Validating事件和Validated事件时使用TextChanged事件。

你想要的是MaskedTextBox,它可以和你的数字一起工作

参见如何验证用户输入(Windows Forms . net)概述,并在该文档中进行事件驱动验证。