Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Tooltip text pour la liste déroulante d'un combobox

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 178 fois - Téléchargée 7 fois

Contenu du snippet

Ce code permet d'afficher un ToolTip lors du survol de la dropdwonlist d'un combobox.
Cette fonction doit être appellée par l'événement DrawItem du ComboBox, et la propiété DrawMode doit être OwnerDrawFixed.

Source / Exemple :


 
/// <summary> 
        /// Cette fonction permet d'afficher un tooltip pendant le survol de la DropDownList d'un ComboBox. 
        /// Cette fonction doit être appellée par l'événement DrawItem du ComboBox, et la propiété DrawMode doit être OwnerDrawFixed. 
        /// </summary> 
        /// <param name="MonCombo">Le ComboBox en question</param> 
        /// <param name="e"></param> 
        private void ToolTipDropDowmList(ComboBox MonCombo, DrawItemEventArgs e) 
        { 
            //L'évènement DrawItem permet de préciser comment dessiner, les parties du controle qui le nécessitent. 
            //La DropDownList au moment ou elle s'ouvre, ou l'élément survolé ou celui qui n'est plus survolé par exemple. 

            if (e.Index == -1) 
            { 
                MonToolTip.Hide(this); 
                return; 
            } 

            //Si la liste est déroulée 
            if (MonCombo.DroppedDown) 
            { 
                //Si la souris survole l'élément dans la dropdowmlist 
                if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) 
                { 
                    //Affiche le Tooltip associé à l'élément, pendant 1500 ms 
                    MonToolTip.Show(MonCombo.Items[e.Index].ToString(), MonCombo, new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y), 1500); 

                    //Dessine le rectangle de sélection avec une couleur choisie, sinon utiliser e.DrawBackground(); 
                    e.Graphics.FillRectangle(Brushes.Blue, new Rectangle(e.Bounds.Location, e.Bounds.Size)); 
                     
                    //Ecrit la valeur ToString de l'élément avec une couleur choisie 
                    e.Graphics.DrawString(MonCombo.Items[e.Index].ToString(), e.Font, Brushes.White, new Point(e.Bounds.X, e.Bounds.Y)); 
                } 
                else 
                { 
                    //Sinon on dessine le fond par défaut 
                    e.DrawBackground(); 
                   // et on écrit le texte en noir   
                    e.Graphics.DrawString(MonCombo.Items[e.Index].ToString(), e.Font, Brushes.Black, new Point(e.Bounds.X, e.Bounds.Y)); 
                } 
            } 
            else 
            { 
                //Si la liste est fermée. 

                //On dessine le fond en blanc 
                e.Graphics.FillRectangle(Brushes.White, new Rectangle(e.Bounds.Location, e.Bounds.Size)); 
                // et on écrit le texte en noir   
                e.Graphics.DrawString(MonCombo.Items[e.Index].ToString(), e.Font, Brushes.Black, new Point(e.Bounds.X, e.Bounds.Y)); 
            } 
        } 

Conclusion :


C'est une source que j'ai trouvée vers la fin de ce post
http://social.msdn.microsoft.com/forums/en-US/winforms/thread/e234c4a7-0cf7-4284-a072-8152f7593002/
Je l'ai un peu complétée.

A voir également

Ajouter un commentaire

Commentaires

Votre évaluation

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.