Afficher une info-bulle sur un bouton à l’aide de Windows Forms

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.

  1. Ajoutez un contrôle info-bulle (sous contrôles communs dans la boîte à outils Windows Forms) à votre formulaire.
  2. Donnez-lui un nom – dites MyToolTip
  3. Définissez la propriété “Tooltip on MyToolTip” de MyButton (sous Misc dans la grid de propriétés du bouton) sur le texte qui doit apparaître lorsque vous le survolez.

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:

  • Faites glisser le contrôle ToolTip de la boîte à outils sur le formulaire.
  • Sélectionnez les propriétés du contrôle sur lequel vous souhaitez que l’info-bulle apparaisse.
  • Recherchez la propriété ‘ToolTip on toolTip1’ (le nom peut ne pas être toolTip1 si vous avez modifié son nom par défaut).
  • Définissez le texte de la propriété sur le texte de l’info-bulle que vous souhaitez afficher.

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); }