如何在使用Windows Forms时,在按钮上显示工具提示?
如何在使用Windows Forms时,在按钮上显示工具提示?
ToolTip是一个单一的WinForms控件,用于处理在单个窗体上为多个元素显示工具提示。
假设您的按钮名为MyButton:
当光标悬停在按钮上时,工具提示将自动出现。但是,如果您需要以编程方式显示它,请调用:
MyToolTip.Show("Tooltip text goes here", MyButton);
在您的代码中显示工具提示,并且
MyToolTip.Hide(MyButton);
使其再次消失。使用表单设计器:
您也可以通过以下调用程序编程方式设置工具提示:
this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
private void Form1_Load(object sender, System.EventArgs e)
{
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.Button1, "Hello");
}
对于默认的工具提示,可以使用以下方法-
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
在“Tag”属性中懒惰且紧凑地存储文本
如果您有点懒惰,而且不使用控件的“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());
});
}
}
}
private void checkBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.Show("text", checkBox1);
}
private void Form1_Load(object sender, System.EventArgs e)
{
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;
toolTip1.SetToolTip(this.button1, "My button1");
toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
我根据DaveK的回答创建了一个控制扩展:
public static void SetToolTip(this Control control, string txt)
{
new ToolTip().SetToolTip(control, txt);
}
然后您可以使用一行代码为任何控件设置工具提示:
this.MyButton.SetToolTip("Hello world");
Ex-
ToolTip t=new ToolTip();
t.setToolTip(textBoxName,"write your message here what tp you want to show up");
ToolTip t = new ToolTip();
然后是事件处理程序:
private void control_MouseHover(object sender, EventArgs e)
{
t.Show("Text", (Control)sender);
}