Il semble que le Label
ne possède pas de propriété Hint
ou ToolTip
ou Hovertext
. Alors, quelle est la méthode préférée pour afficher un indice, une info-bulle ou un texte survolé lorsque le Label
est approché par la souris?
Vous devez d'abord ajouter un contrôle ToolTip
à votre formulaire. Ensuite, vous pouvez définir le texte à afficher pour les autres contrôles.
Voici une capture d'écran montrant le concepteur après avoir ajouté un contrôle ToolTip
nommé toolTip1
:
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.");
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip( Label1, "Label for Label1");
juste une autre façon de le faire.
Label lbl = new Label();
new ToolTip().SetToolTip(lbl, "tooltip text here");
Juste pour partager mon idée ...
J'ai créé une classe personnalisée pour hériter de la classe Label. J'ai ajouté une variable privée affectée en tant que classe Tooltip et une propriété publique, TooltipText. Ensuite, lui a donné une méthode déléguée MouseEnter. C'est un moyen facile de travailler avec plusieurs contrôles d'étiquettes sans avoir à vous soucier de l'affectation de votre contrôle Info-bulle pour chaque contrôle d'étiquette.
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);
}
}
}
Dans la méthode InitializeComponent du contrôle utilisateur ou du formulaire (code Designer), réaffectez votre contrôle Label à la classe personnalisée:
this.lblMyLabel = new ucLabel();
Modifiez également la référence à la variable privée dans le code du concepteur:
private ucLabel lblMyLabel;