Wydaje się, że Label
nie ma Hint
lub ToolTip
lub Hovertext
mienia. Jaka jest więc preferowana metoda wyświetlania podpowiedzi, podpowiedzi lub tekstu po najechaniu Label
myszą?
Wydaje się, że Label
nie ma Hint
lub ToolTip
lub Hovertext
mienia. Jaka jest więc preferowana metoda wyświetlania podpowiedzi, podpowiedzi lub tekstu po najechaniu Label
myszą?
Odpowiedzi:
ToolTip
Najpierw musisz dodać kontrolkę do swojego formularza. Następnie możesz ustawić tekst, który ma być wyświetlany dla innych kontrolek.
Oto zrzut ekranu przedstawiający projektanta po dodaniu ToolTip
kontrolki o nazwie toolTip1
:
ToolTip
formant może po prostu zarejestrować się w celu umieszczenia wskaźnika myszy na zdarzeniach i wyświetlić odpowiedni tekst w zależności od wywołanego zdarzenia. To wszystko dzieje się w tle.
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.");
Żeby podzielić się moim pomysłem ...
Utworzyłem niestandardową klasę, aby dziedziczyć klasę Label. Dodałem prywatną zmienną przypisaną jako klasa Tooltip i publiczną właściwość TooltipText. Następnie dał mu metodę delegata MouseEnter. Jest to łatwy sposób pracy z wieloma kontrolkami etykiet i nie musisz się martwić o przypisywanie kontrolki etykiety narzędzi do każdej kontrolki etykiety.
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);
}
}
}
W metodzie InitializeComponent formularza lub kontrolki użytkownika (kod projektanta), ponownie przypisuj kontrolkę Label do klasy niestandardowej:
this.lblMyLabel = new ucLabel();
Zmień również odwołanie do zmiennej prywatnej w kodzie projektanta:
private ucLabel lblMyLabel;