Wydaje się, że Labelnie ma Hintlub ToolTiplub Hovertextmienia. Jaka jest więc preferowana metoda wyświetlania podpowiedzi, podpowiedzi lub tekstu po najechaniu Labelmyszą?
Wydaje się, że Labelnie ma Hintlub ToolTiplub Hovertextmienia. Jaka jest więc preferowana metoda wyświetlania podpowiedzi, podpowiedzi lub tekstu po najechaniu Labelmyszą?
Odpowiedzi:
ToolTipNajpierw 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 ToolTipkontrolki o nazwie toolTip1:

ToolTipformant 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;