在文本框失败时实现红色高亮的验证
本文关键字:红色 高亮 验证 实现 文本 失败 | 更新日期: 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)概述,并在该文档中进行事件驱动验证。