有没有一种方法可以强制显示工具提示?

9
我有一个验证字段的方法。如果无法验证,则清除该字段并将其标记为红色。
我还想在框上弹出一个工具提示,告知用户该值无效。有没有办法做到这一点,并可以控制工具提示显示的时间?如何使其自动弹出而不是在鼠标悬停时弹出?

2
WinForms?WPF?还是其他什么? - Mark Byers
弹出窗口要放在哪里? 工具提示在悬停时出现... 如果您希望其始终存在,则可能希望在屏幕上出现另一个元素。因为您还需要设置它在屏幕上的位置。 - Whimsical
1
我只想让它在正常位置弹出,就在控件旁边。弹出并显示几秒钟。 - Sinaesthetic
4个回答

22
"如果字段无法通过验证,我会清空该框并将其标记为红色。我还希望在框上方弹出一个工具提示,说明该值无效。"
根据您所描述的行为,使用ErrorProvider组件比使用工具提示更好。 ErrorProvider组件会自动在未通过验证的控件旁边放置您指定的图标,并向用户显示工具提示,描述验证错误和/或他们需要采取的步骤以进行更正:"

ErrorProvider component in action

C# Corner上有一个示例可用,但实现非常简单。只需将ErrorProvider组件添加到您的表单中(它默认在工具箱中可用),然后在验证方法中编写以下代码:

private void ValidateName()
{
 if (string.IsNullOrEmpty(NameTextBox.Text))
    {
            //Validation failed, so set an appropriate error message
            errorProvider.SetError(NameTextBox, "You must enter your name");
    }
    else
    {
            //Clear previous error message
            errorProvider.SetError(NameTextBox, string.Empty);
    }
}

4
尝试这个:
基本上,
private void button1_Click(object sender, EventArgs e)
{
    ToolTip toolTip1 = new ToolTip();
    toolTip1.Title = "Invalid entry"; // Title to display.
    toolTip1.Show("Please enter a number.", textBox1); // Message of the toolTip and to what control to appear.
}

但是ToolTip还有其他5种重载方法。你可以在这里查看。


0

这里有一个例子。玩弄工具提示的属性,您可以按照您的意愿显示工具提示。

您可以在工具提示上使用Show方法。

注意:.net 2.0版本。


好的,我已经成功设置了属性。但是我不知道如何让它自动显示,而不仅仅是在鼠标悬停时显示。 - Sinaesthetic

0

这是一个WinForms应用程序吗...如果是的话,请在这里检查

如果是一个ASP.NET Web应用程序...你可以添加一个名为tooltip的字段


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接