Comment puis-je afficher une info-bulle sur un bouton à l’aide de Windows Forms ?
Le ToolTip est en fait un contrôle WinForms qui gère l’affichage des info-bulles pour plusieurs éléments sur un seul formulaire.
Disons que votre bouton s’appelle MyButton.
L’info-bulle apparaîtra automatiquement lorsque le curseur survole le bouton, mais si vous devez l’afficher par programmation, appelez
MyToolTip.Show("Tooltip text goes here", MyButton)
dans votre code pour afficher l’info-bulle, et MyToolTip.Hide (MyButton) pour le faire disparaître à nouveau.
En utilisant le concepteur de formulaire:
Vous pouvez également définir l’info-bulle par programmation à l’aide de l’appel suivant:
this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
Vous pouvez utiliser la classe ToolTip:
Créer une info-bulle pour un contrôle
Exemple:
private void Form1_Load(object sender, System.EventArgs e) { System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip(); ToolTip1.SetToolTip(this.Button1, "Hello"); }
Pour les info-bulles par défaut, cela peut être utilisé –
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip(); ToolTip1.SetToolTip(this.textBox1, "Hello world");
Une info-bulle personnalisée peut également être utilisée si le formatage est requirejs pour le message d’info-bulle. Cela peut être créé par un formatage personnalisé du formulaire et l’utiliser comme boîte de dialog d’info-bulle sur un événement de survol de la souris du contrôle. S’il vous plaît vérifier le lien suivant pour plus de détails –
http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html
Le framework .NET fournit une classe ToolTip. Ajoutez l’un de ces éléments à votre formulaire, puis à l’événement MouseHover pour chaque élément pour lequel vous souhaitez une infobulle, procédez comme suit:
private void checkBox1_MouseHover(object sender, EventArgs e) { toolTip1.Show("text", checkBox1); }
Stockage du texte paresseux et compact dans la propriété Tag
Si vous êtes un peu paresseux et que vous n’utilisez pas la propriété Tag des contrôles, vous pouvez l’utiliser pour stocker le texte de l’info-bulle et affecter les gestionnaires d’ événements MouseHover à tous ces contrôles en une seule fois:
private System.Windows.Forms.ToolTip ToolTip1; private void PrepareTooltips() { ToolTip1 = new System.Windows.Forms.ToolTip(); foreach(Control ctrl in this.Controls) { if (ctrl is Button && ctrl.Tag is ssortingng) { ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a) { var btn = (Control)o; ToolTip1.SetToolTip(btn, btn.Tag.ToSsortingng()); }); } } }
Dans ce cas, tous les boutons ayant une chaîne dans la propriété Tag sont affectés à un événement MouseHover . Pour le garder compact, l’événement MouseHover est défini en ligne à l’aide d’une expression lambda. Dans le cas où un bouton survolé se verra atsortingbuer le texte de l’ étiquette à l’infobulle et s’affichera.
private void Form1_Load(object sender, System.EventArgs e) { ToolTip toolTip1 = new ToolTip(); toolTip1.AutoPopDelay = 5000; toolTip1.InitialDelay = 1000; toolTip1.ReshowDelay = 500; toolTip1.ShowAlways = true; toolTip1.SetToolTip(this.button1, "My button1"); toolTip1.SetToolTip(this.checkBox1, "My checkBox1"); }
Bien sûr, manipulez simplement l’événement mousehover et dites-lui d’afficher une info-bulle. t est une info-bulle définie dans les globals ou dans le constructeur en utilisant:
ToolTip t = new ToolTip();
puis le gestionnaire d’événement:
private void control_MouseHover(object sender, EventArgs e) { t.Show("Text", (Control)sender); }