看来,Label
没有Hint
或ToolTip
或Hovertext
财产。那么,当Label
鼠标接近时,显示提示,工具提示或悬停文本的首选方法是什么?
Answers:
您必须ToolTip
先向表单添加控件。然后,您可以设置其他控件应显示的文本。
这是显示设计师添加ToolTip
名为的控件后的屏幕截图toolTip1
:
ToolTip
控件就可以为其自身注册鼠标悬停事件,并根据引发的事件显示适当的文本。这一切都在后台发生。
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类。我添加了一个分配为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();
另外,在设计器代码中更改私有变量引用:
private ucLabel lblMyLabel;