ToolTip & Treeview

Résolu
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 - 11 juin 2007 à 17:23
cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 - 12 juin 2007 à 15:46
Bonjour à tous,

Etant encore débutant, je cherche un moyen de pouvoir faire la même chose que le screenshot ci dessous :

http://img124.imageshack.us/img124/9351/screentu7.png

Quand par exemple le pointeur de la souris passe sur le checkbox "Fichiers d'aide" la description correspondante s'affiche dans un groupBox et non le tooltip d'origine!

Auriez-vous une solution, un exemple à me présenter? Merci

6 réponses

cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
11 juin 2007 à 17:38
Salut,

En supposant que tu disposes d'un TreeView nommé "treeView1" et un Label nommé "label1" dans lequel s'affiche la description. Le code suivant devrait te permettre d'arriver à faire ce que tu veux :

       // Dans l'événement MouseMove du TreeView...
        private void treeView1_MouseMove(object sender, MouseEventArgs e)
        {
             // ...On demande au TreeView de nous donner l'élément sous la souris...
            TreeViewHitTestInfo info = this.treeView1.HitTest(e.X, e.Y);
            
            if (info.Node != null) // ... s'il y a un élément sous la souris...
            {
                // ...On affiche sa description dans le label
                this.label1.Text = info.Node.ToolTipText;
            }
            else // ... si la souris ne survole aucun élément...
             {
                // ... on affiche un message par défaut
                this.label1.Text = "Rien à afficher !";
             }
        }

C'est ça ?
3
cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
12 juin 2007 à 15:46
Elle s'ajoute "toute seule" lorsque, dans le concepteur de forms, tu vas dans la fenêtre Propriétés et que tu sélectionnes le bouton Evénements (symbolisé par un éclair).
Sinon, il faut effectivement le faire manuellement.
3
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
11 juin 2007 à 18:03
Merci pour ta réponse c'est précisement se que je recherche oui, mais jai un petit soucis, même sans se code le tooltip que j'affecte à un checkbox racine ou enfant dans mon treeView1 ne s'affiche pas une fois le pointeur de la souris dessus, j'ai essayé sur dautres contrôles et la le tooltip marche... Une idée?

D'autre part si le texte de mon tooltip est trop long comment faire pour l'afficher sur deux lignes dans le "label1"? Merci beaucoup!
0
cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
11 juin 2007 à 18:17
Pour que les TreeView (comme les ListView d'ailleurs) affiche le ToolTip de leurs éléments il faut mettre à true la propriété ShowNodeToolTips du TreeView.

Enfin, pour afficher plusieurs lignes dans un Label, il faut mettre à false sa propriété AutoSize. Tu peux alors le redimensionner à une taille suffisamment importante pour contenir n'importe laquelle des descriptions.
Si ça ne suffit pas, tu peux remplacer le Label par une TextBox (les TextBox supportent les barres de défilement).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
11 juin 2007 à 18:29
Merci beaucoup pour tes renseignements si précieux à ma compréhension!
Après avoir testé si le tooltip marchais sans l'évenement MouseMove (il marche), j'ai remis le code mais rien ne s'affiche dans le label1 et le tooltip apparaîssent toujours sur les checkBox... J'ai bien un treeView1 et un label1 pourtant, j'ai sans doute oublié quelque chose...
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
12 juin 2007 à 15:20
J'ai moi même trouvé la solution, j'ai du rajouter celle ligne dans la partie "Code généré par le Concepteur Windows Form" dans "treeView1" :

this.treeView1.MouseMove +=
new System.Windows.Forms.
MouseEventHandler(
this.treeView1_MouseMove);

Est-ce normal? Pourquoi cette ligne ne s'ajoute-t-elle pas automatiquement comme les autres controles? Merci
0