【发布时间】:2012-04-04 06:53:21
【问题描述】:
似乎Label 没有Hint 或ToolTip 或Hovertext 属性。那么当鼠标接近Label 时,显示提示、工具提示或悬停文本的首选方法是什么?
【问题讨论】:
标签: c# .net winforms label tooltip
似乎Label 没有Hint 或ToolTip 或Hovertext 属性。那么当鼠标接近Label 时,显示提示、工具提示或悬停文本的首选方法是什么?
【问题讨论】:
标签: c# .net winforms label tooltip
您必须先将ToolTip 控件添加到您的表单中。然后你可以设置它应该为其他控件显示的文本。
这是一个屏幕截图,显示了在添加名为 toolTip1 的 ToolTip 控件后设计器:
【讨论】:
ToolTip 控件可以只注册自己的鼠标悬停事件,并根据引发的事件显示正确的文本。这一切都发生在后台。
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip( Label1, "Label for Label1");
【讨论】:
yourToolTip = new ToolTip();
//The below are optional, of course,
yourToolTip.ToolTipIcon = ToolTipIcon.Info;
yourToolTip.IsBalloon = true;
yourToolTip.ShowAlways = true;
yourToolTip.SetToolTip(lblYourLabel,"Oooh, you put your mouse over me.");
【讨论】:
只是另一种方式。
Label lbl = new Label();
new ToolTip().SetToolTip(lbl, "tooltip text here");
【讨论】:
只是为了分享我的想法......
我创建了一个自定义类来继承 Label 类。我添加了一个分配为 Tooltip 类的私有变量和一个公共属性 TooltipText。然后,给它一个 MouseEnter 委托方法。这是一种使用多个 Label 控件的简单方法,而不必担心为每个 Label 控件分配 Tooltip 控件。
public partial class ucLabel : Label
{
private ToolTip _tt = new ToolTip();
public string TooltipText { get; set; }
public ucLabel() : base() {
_tt.AutoPopDelay = 1500;
_tt.InitialDelay = 400;
// _tt.IsBalloon = true;
_tt.UseAnimation = true;
_tt.UseFading = true;
_tt.Active = true;
this.MouseEnter += new EventHandler(this.ucLabel_MouseEnter);
}
private void ucLabel_MouseEnter(object sender, EventArgs ea)
{
if (!string.IsNullOrEmpty(this.TooltipText))
{
_tt.SetToolTip(this, this.TooltipText);
_tt.Show(this.TooltipText, this.Parent);
}
}
}
在表单或用户控件的 InitializeComponent 方法(设计器代码)中,将您的 Label 控件重新分配给自定义类:
this.lblMyLabel = new ucLabel();
另外,更改 Designer 代码中的私有变量引用:
private ucLabel lblMyLabel;
【讨论】:
我做了一个帮手,让生活更轻松。
public static class ControlUtilities1
{
public static Control AddToolTip(this Control control, string title, string text)
{
var toolTip = new ToolTip
{
ToolTipIcon = ToolTipIcon.None,
IsBalloon = true,
ShowAlways = true,
ToolTipTitle = title,
};
toolTip.SetToolTip(control, text);
return control;
}
}
在控件准备好后调用它:
InitializeComponent();
...
linkLabelChiValues.AddToolTip(title, text);
这是一种保持工具提示样式一致的方法。
【讨论】: