Es scheint, dass der Label
kein Hint
oder ToolTip
oder Hovertext
Eigentum hat. Was ist die bevorzugte Methode, um einen Hinweis, einen Tooltip oder einen Hover-Text anzuzeigen, wenn Sie Label
mit der Maus darauf zugreifen?
Es scheint, dass der Label
kein Hint
oder ToolTip
oder Hovertext
Eigentum hat. Was ist die bevorzugte Methode, um einen Hinweis, einen Tooltip oder einen Hover-Text anzuzeigen, wenn Sie Label
mit der Maus darauf zugreifen?
Antworten:
Sie müssen ToolTip
Ihrem Formular zuerst ein Steuerelement hinzufügen . Anschließend können Sie den Text festlegen, der für andere Steuerelemente angezeigt werden soll.
Hier ist ein Screenshot, der den Designer nach dem Hinzufügen eines ToolTip
Steuerelements mit dem Namen zeigt toolTip1
:
ToolTip
Steuerelement einfach für Mouse-Over-Ereignisse registrieren und je nach ausgelöstem Ereignis den richtigen Text anzeigen. Dies alles geschieht im Hintergrund.
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.");
Nur um meine Idee zu teilen ...
Ich habe eine benutzerdefinierte Klasse erstellt, um die Label-Klasse zu erben. Ich habe eine private Variable hinzugefügt, die als Tooltip-Klasse und als öffentliche Eigenschaft TooltipText zugewiesen ist. Dann gab es eine MouseEnter-Delegatenmethode. Dies ist eine einfache Möglichkeit, mit mehreren Label-Steuerelementen zu arbeiten, ohne sich um die Zuweisung Ihres Tooltip-Steuerelements für jedes Label-Steuerelement kümmern zu müssen.
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);
}
}
}
Weisen Sie in der InitializeComponent-Methode des Formular- oder Benutzersteuerelements (dem Designer-Code) Ihr Label-Steuerelement der benutzerdefinierten Klasse neu zu:
this.lblMyLabel = new ucLabel();
Ändern Sie auch die Referenz für private Variablen im Designer-Code:
private ucLabel lblMyLabel;