如何使用Windows窗体在按钮上显示工具提示?


当前回答

当然,只需处理鼠标悬停事件并告诉它显示工具提示。 T是一个在全局函数中定义的工具提示,或者在构造函数中使用:

ToolTip t = new ToolTip();

然后是事件处理程序:

private void control_MouseHover(object sender, EventArgs e)
{
  t.Show("Text", (Control)sender);
}

其他回答

在Tag属性中存储文本的惰性和紧凑性

如果你有点懒,不使用标签属性的控件的任何其他东西,你可以使用它来存储工具提示文本,并分配MouseHover事件处理程序到所有这样的控件,就像这样:

private System.Windows.Forms.ToolTip ToolTip1;
private void PrepareTooltips()
{
    ToolTip1 = new System.Windows.Forms.ToolTip();
    foreach(Control ctrl in this.Controls)
    {
        if (ctrl is Button && ctrl.Tag is string)
        {
            ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
            {
                var btn = (Control)o;
                ToolTip1.SetToolTip(btn, btn.Tag.ToString());
            });
        }
    }
}

在这种情况下,所有在Tag属性中有字符串的按钮都会被分配一个MouseHover事件。为了保持紧凑,MouseHover事件使用lambda表达式内联定义。在事件中,任何按钮悬停将其标签文本分配给工具提示并显示。

我已经做了很酷的工具提示 代码是:

1.初始化工具提示对象

2.当你想要展示你的创造力时或在哪里调用对象

Ex-  
ToolTip t=new ToolTip();
t.setToolTip(textBoxName,"write your message here what tp you want to show up");

对于默认的工具提示,可以使用-

System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");

如果需要对工具提示消息进行格式化,也可以使用定制的工具提示。这可以通过自定义格式化表单来创建,并将其用作控件的鼠标悬停事件的工具提示对话框。详情请查看以下链接-

http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html

基于DaveK的回答,我创建了一个控件扩展:

public static void SetToolTip(this Control control, string txt)
{
    new ToolTip().SetToolTip(control, txt);
}

然后你可以用一行来设置任何控件的工具提示:

this.MyButton.SetToolTip("Hello world");

当然,只需处理鼠标悬停事件并告诉它显示工具提示。 T是一个在全局函数中定义的工具提示,或者在构造函数中使用:

ToolTip t = new ToolTip();

然后是事件处理程序:

private void control_MouseHover(object sender, EventArgs e)
{
  t.Show("Text", (Control)sender);
}