【发布时间】:2021-02-18 04:25:00
【问题描述】:
我想制作一个出现的工具提示,然后在 5 秒后或当用户再次单击文本框时消失,但如果用户将鼠标移动或在文本框上,工具提示不应该更早消失超过 5 秒。
这是我的代码,我正在检查以防止用户在 txtName 文本框中输入这些字符,当用户写入任何这些字符时,它会将它们替换为“”,然后我想立即显示工具提示,它应该在 5 秒后消失,但在此代码中,SetShowDuration 不起作用,工具提示出现并永久保留。
private void txtName_TextChanged(object sender, EventArgs e)
{
if (Regex.IsMatch(txtName.Text, @"[\\/:*?""<>|]"))
{
string pattern = @"[\\/:*?""<>|]";
Regex regex = new Regex(pattern);
txtName.Text = regex.Replace(txtName.Text, "");
ToolTip toolTip = new ToolTip();
toolTip.Content = @"The file name can't contain any of the following characters: \ / : * ? "" < > |";
toolTip.IsOpen = true;
ToolTipService.SetToolTip(toolTip, txtName);
ToolTipService.SetShowDuration(toolTip, 1000);
}
}
【问题讨论】:
-
这称为验证,参见例如this(异常验证规则)。