ToolTip et checkbox

clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 - 29 nov. 2007 à 10:06
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 - 3 déc. 2007 à 22:27
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 label et non le tooltip d'origine!

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

(Je précise que j'ai une dizaine de checkboxs et que le tooltip de chaque checkbox doit s'afficher dans un label nomé "labelInfo")

8 réponses

Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
29 nov. 2007 à 10:39
regarde ca: http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfsystemwindowsformscontrolclassmousehovertopic.asp
tes checkbox exposent un evenement mousehover... a toi de faire une methode "générique" qui insere le tooltip du control appelant dans la propriété text de ton 'labelinfo',

ensuite tu n'auras plus qu'a associer cette methode a tous tes checkboxs

Nul ne devient grand par la guerre...
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
29 nov. 2007 à 15:59
Merci pour votre réponse   

Voilà se que j'ai commencé (pareil pour checkBox2, 3, 4 et 5):

         private void checkBox1_MouseMove(object sender, MouseEventArgs e)
        {
            int mouseX = e.X;
            int mouseY = e.Y;




            if (??? != null) // ... s'il y a un élément sous la souris...
            {
                // ...On affiche sa description dans le label
                this.labelInfo.Text = ???;
            }
            else // ... si la souris ne survole aucun élément...
            {
                // ... on affiche un message par défaut
                this.labelInfo.Text = "Rien à afficher !";
            }
        }

Bon je pense qu'il faut que je me lance comme ceci, par contre je ne sais pas quoi mettre ou j'ai mis des "???", une petit exemple? Merci
0
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
29 nov. 2007 à 16:11
l'evenement MouseHover est déclenché dès que tu survole le composant en question...
pas besoin de gestion de souris

ensuite crée plutot une methode generale, que tu reutilisera pour chaque checkbox, c'est le meme code a chaque fois...

private void checkBox_MouseHover(object sender, MouseEventArgs e)

{
    CheckBox box = (CheckBox)Sender;
    this.labelInfo.Text = box.tooltip;

}

et si tu veux gerer le cas ou tu n'as rien sous le curseur de la souris, tu passes par un autre evenment...

PS: je suis au taff, sans compilateur CS, donc le code donné peut avoir quelques erreurs syntaxiques...

Nul ne devient grand par la guerre...
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
29 nov. 2007 à 16:52
Merci pour la précision, effectivement il y a deux erreurs à la compilation :

Erreur 1 : Le nom 'Sender' n'existe pas dans le contexte actuel
Erreur 2 : 'System.Windows.Forms.CheckBox' ne contient pas de définition pour 'tooltip'

Et l'autre événement lequel est-ce?

Encore merci
0

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

Posez votre question
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
30 nov. 2007 à 10:37
<li class="MsoNormal" style="">
pour le tooltip, en effet, ce serait plutôt quelque chose comme ça:



</li>


checkBox.ToolTip





<li class="MsoNormal" style="">
pour le sender, en réfléchissant 5 secondes, tu aurais enlevé la
majuscule, étant donné qu'il s'agit de l'un des paramètres de la fonction


</li>


<li class="MsoNormal" style="">
pour l'événement... si tu ne visite pas les liens qu'on te
donne... (le liens que je t'ai donné pointe sur l'un des événement de cet
objet, les autres étant directement accessible depuis cette page ! fais
un peu de recherche par toi-même, ça te sera toujours plus profitable que
le fait que je te fasse tout ton code…
</li>


<li>
d’ailleurs après réflexion l’utilisation de MouseHover n’est pas
la plus judicieuse, il existe un événement plus adapté… il est dans la
liste (je suis gentils avec toi, je te met le lien directement vers l’ensemble
des membres – dont les événements – de cet objet : http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfsystemwindowsformscheckboxmemberstopic.asp


</li>







Nul ne devient grand par la guerre...
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
30 nov. 2007 à 22:28
Je pense après lecture de vos liens que l'événement MouseEnter est plus judicieux pour afficher le tooltip et que l'évenement MouseLeave conviendrait si rien ne se trouve sous le pointeur de la souris, est-ceci?

Merci beaucoup
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
30 nov. 2007 à 22:38
MouseMove et MouseLeave pardon
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
3 déc. 2007 à 22:27
Bonjour,

J'ai trouvé ceci qui ma l'air interessant en lisant un peu msdn (dans "MouseMove") :

this.labelInfo.Text = toolTip1.GetToolTip(this.checkBox1);

Le texte s'affiche bien dans le label mais il s'affiche aussi toujours sous forme d'info bulle sur le contrôle... Comment arriver à ne l'afficher que dans le label?

Merci beaucoup
0
Rejoignez-nous