我想在发生错误时显示气球提示,而不是显示MessageBox。
[注意]我不希望它在鼠标悬停上显示。
我试过了两个,但他们实际上显示了鼠标悬停的提示
toolTip1.SetToolTip();
toolTip1.Show();
答案 0 :(得分:2)
您可以使用ToolTip Popup event检查是否存在工具提示,如果没有,则取消它。然后,您可以在验证期间设置工具提示,然后显示它。在这个例子中,我设置了一个计时器,在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();
}
}
答案 1 :(得分:0)
令我惊讶的是,toolTip1.IsOpen = true似乎会显示工具提示并允许它保持打开状态。请注意,您需要提供关闭它的代码,因为无论我做什么,它都不会在我的机器上自行消失。