Здається, що Label
не має Hint
або ToolTip
або Hovertext
властивості. Отже, який найкращий метод показувати підказку, підказку чи текст наведення, коли до Label
нього звертається миша?
Здається, що Label
не має Hint
або ToolTip
або Hovertext
властивості. Отже, який найкращий метод показувати підказку, підказку чи текст наведення, коли до Label
нього звертається миша?
Відповіді:
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. Це простий спосіб працювати з кількома елементами керування мітками, і вам не доведеться турбуватися про призначення вашого підказки для кожного елемента керування мітками.
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;