Dyl*_*tie 215
ToolTip实际上是一个WinForms控件,用于处理单个表单上多个元素的工具提示.
假设您的按钮名为MyButton.
当光标悬停在按钮上时,工具提示将自动出现,但如果您需要以编程方式显示它,请致电
MyToolTip.Show("Tooltip text goes here", MyButton)
Run Code Online (Sandbox Code Playgroud)
在你的代码中显示工具提示,MyToolTip.Hide(MyButton)使它再次消失.
jma*_*ias 89
使用表单设计器:
您还可以使用以下调用以编程方式设置工具提示:
this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
Run Code Online (Sandbox Code Playgroud)
Dav*_*veK 42
您可以使用ToolTip类:
例:
private void Form1_Load(object sender, System.EventArgs e)
{
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.Button1, "Hello");
}
Run Code Online (Sandbox Code Playgroud)
.NET 框架提供了一个 ToolTip 类。将其中一个添加到您的表单中,然后在您想要工具提示的每个项目的 MouseHover 事件上,执行以下操作:
private void checkBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.Show("text", checkBox1);
}
Run Code Online (Sandbox Code Playgroud)
对于默认工具提示,可以使用-
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");
Run Code Online (Sandbox Code Playgroud)
如果工具提示消息需要格式化,也可以使用自定义的工具提示。这可以通过自定义格式来创建,并将其用作控件的鼠标悬停事件上的工具提示对话框。请检查以下链接以获取更多详细信息-
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());
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,将在Tag属性中具有字符串的所有按钮分配给MouseHover事件。为了使其紧凑,使用lambda表达式内联定义了MouseHover事件。如果任何悬停的按钮将其标签文本分配给工具提示并显示。
Fry*_*Fry -4
当然,只需处理鼠标悬停事件并告诉它显示工具提示即可。t 是在全局变量或构造函数中定义的工具提示,使用:
ToolTip t = new ToolTip();
Run Code Online (Sandbox Code Playgroud)
然后是事件处理程序:
private void control_MouseHover(object sender, EventArgs e)
{
t.Show("Text", (Control)sender);
}
Run Code Online (Sandbox Code Playgroud)