我在文本框上使用TextChanged事件来验证内容。如果用户键入非法字符,我试图使工具提示出现。第一次键入非法字符时,此方法可以正常工作。如果我删除了非法字符,然后添加了另一个非法字符,则工具提示不会再次出现。我必须移动鼠标才能使工具提示重新出现。
我想要的是一种向用户表示他们在无法在路径中使用的文本框中输入了非法字符的方式。
为什么在输入另一个非法字符后工具提示仍不出现?
代码:
// Initialization
char[] illegalCharacters = Path.GetInvalidPathChars();
//Event handler
private void descriptionTextChanged(object sender, EventArgs e)
{
if (description.Text.Length < 6)
{
description.BackColor = Color.LightPink;
toolTip1.SetToolTip(description, @"Must be at least 6 characters long.");
}
else
{
description.BackColor = Color.White;
foreach (char illegalCharacter in illegalCharacters)
{
if (description.Text.Contains(illegalCharacter))
{
description.BackColor = Color.LightPink;
toolTip1.RemoveAll();
toolTip1.Show(@"Name may not contain a '< , > | or double quote.", description);
break;
}
}
}
}