按钮上的显示气球提示单击

时间:2012-10-30 00:56:53

标签: c# tooltip

我想在发生错误时显示气球提示,而不是显示MessageBox。

[注意]我不希望它在鼠标悬停上显示。

我试过了两个,但他们实际上显示了鼠标悬停的提示

toolTip1.SetToolTip();
toolTip1.Show();

2 个答案:

答案 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似乎会显示工具提示并允许它保持打开状态。请注意,您需要提供关闭它的代码,因为无论我做什么,它都不会在我的机器上自行消失。