.net - utilisation - tutoriel qgis 2.14 pdf




Afficher une info-bulle sur un bouton à l'aide de Windows Forms (6)

Comment puis-je afficher une info-bulle sur un bouton à l'aide de Windows Forms ?


Bien sûr, il suffit de gérer l'événement mousehover et lui dire d'afficher une info-bulle. t est une info-bulle définie dans les globales 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);
}

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.
  • Trouvez la propriété 'Info-bulle sur toolTip1' (le nom peut ne pas être toolTip1 si vous avez changé 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 définir la pointe de l'outil par programmation en utilisant l'appel suivant:

this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");

Le framework .NET fournit une classe ToolTip. Ajoutez-en un à votre formulaire, puis sur l'événement MouseHover pour chaque élément pour lequel vous souhaitez obtenir une info-bulle, procédez comme suit:

    private void checkBox1_MouseHover(object sender, EventArgs e)
    {
        toolTip1.Show("text", checkBox1);
    }

Pour l'info-bulle 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 dans le cas où le formatage est requis pour le message d'info-bulle. Cela peut être créé par une mise en forme personnalisée du formulaire et l'utiliser comme boîte de dialogue de l'info-bulle sur l'é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


Stockage paresseux et compact du texte dans la propriété Tag

Si vous êtes un peu paresseux et n'utilisez pas la propriété Tag des contrôles pour autre chose, vous pouvez l'utiliser pour stocker le texte de l'info-bulle et assigner des gestionnaires d' événements MouseHover à tous ces contrôles en une seule fois comme ceci:

    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 string)
            {
                ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
                {
                    var btn = (Control)o;
                    ToolTip1.SetToolTip(btn, btn.Tag.ToString());
                });
            }
        }
    }

Dans ce cas, tous les boutons ayant une chaîne dans la propriété Tag reçoivent 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ù n'importe quel bouton plané aura son texte de balise assigné à l'info-bulle et montré.


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




tooltip