我想在发生错误时显示气球提示而不是显示 MessageBox。
[注意] 我不希望它显示在鼠标悬停上。
我都试过了,但它们实际上显示了鼠标悬停的提示
toolTip1.SetToolTip();
toolTip1.Show();
您可以使用ToolTip Popup 事件来检查是否存在 Tooltip,如果没有则取消它。然后,您可以在验证期间设置工具提示,然后显示它。在此示例中,我设置了一个计时器以在 2 秒超时后重置工具提示文本。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
toolTip1.IsBalloon = true;
toolTip1.Popup += new PopupEventHandler(toolTip1_Popup);
toolTip1.SetToolTip(textBox1, "");
}
void toolTip1_Popup(object sender, PopupEventArgs e)
{
if (toolTip1.GetToolTip(e.AssociatedControl) == "")
e.Cancel = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
toolTip1.RemoveAll();
}
private void textBox1_Validating(object sender, CancelEventArgs e)
{
int temp;
if (!int.TryParse(textBox1.Text, out temp))
showTip("Validation Error", (Control)sender);
}
private void showTip(string message, Control destination)
{
toolTip1.Show(message, destination);
timer1.Start();
}
}
令我惊讶的是,toolTip1.IsOpen = true 似乎会显示一个工具提示并允许它保持打开状态。请注意,您需要提供代码来关闭它,因为无论我做什么,它都不会在我的机器上自行消失。