IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Combobox - Savoir sur quel élément est la souris.


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut Combobox - Savoir sur quel élément est la souris.
    Bonjour, j'ai fait un combobox contenant des noms de couleurs, et j'aimerai que lorsque la souris passe sur l'un des éléments de ce combobox, le fond de la combobox change (je sais mettre la couleur : "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cbCouleurs.BackColor = Color.FromName(cbCouleurs.Text);
    "), j'avais déjà cherché afin que je puisse mettre une couleur dans chaque ligne du combobox mais apparement c'est pas possible, alors je me tourne vers cette solution, mais je ne trouve aucune réponse.
    Merci à ceux qui m'aideront.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    C'est en winform?

  3. #3
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Bonjour,

    c'est possible d'avoir les lignes avec la coueur que tu veux, en créant tes propres ComboBox et l'Item que tu veux insérer

    tu crées une classe qui vas représenter l'Item comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class MaComboBoxItem
        {
            public string Str;
            public Color Color;
            public Color BackColor;
     
            public MaComboBoxItem(string str, Color color, Color backColor)
            {
                Str = str;
                Color = color;
                BackColor = backColor;
            }
            public override string ToString()
            {
                return this.Str;
            }
        }
    on trouve le texte à afficher, sa couleur, et la couleur du fond.

    ensuite tu crées ta combox et tu override la méthode OnDrawItem:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class MaComboBox : ComboBox
        {
            protected override void OnDrawItem(DrawItemEventArgs e)
            {
                MaComboBoxItem item = Items[e.Index] as MaComboBoxItem;
                e.Graphics.FillRectangle(new SolidBrush(item.BackColor), e.Bounds);
                e.Graphics.DrawString(item.ToString(), e.Font,new SolidBrush(item.Color), e.Bounds);
                    e.DrawFocusRectangle();
     
            }        
        }

    et pour l'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MaComboBox combo = new MaComboBox();
                combo.DrawMode = DrawMode.OwnerDrawFixed;
                combo.Items.Add(new MaComboBoxItem("item1", Color.Red, Color.Gold));
                combo.Items.Add(new MaComboBoxItem("item2", Color.Green, Color.Beige));
    et le tour est joué

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Merci de ta réponse rapide, surtout que c'est mieux que ce que je demandais.
    Mais comment je l'utilise dans ma form? Je dois mettre moi-même la location et tout ça? Où il y a moyen de faire autrement?

  5. #5
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    soit tu utilises un UserControl et tu l'ajoutes à ta ToolBox,

    sinon tu places un ComboBox classique dans ta form et tu l'ajustes, ensuite tu vas dans le Designer (Form.Designer.cs) et tu changes la déclaration, tu mets MaComboBox à la place de Combobox.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Merci, j'ai trouvé, MaComboBox était dans la Boîte à Outils.
    Encore merci de ton aide.

  7. #7
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    de rien.

    tiens j'avais oublié que ça s'ajoute automatiquement, c'est parceque j'avais désactivé la reconstruction de ma ToolBox vue que j'en ai plein et que ça ralentit mon designer .

    et puis tu m'as donné l'idée d'embellir un peu mes Combobox

  8. #8
    Membre du Club
    Étudiant
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    svp

    une petite question:
    comment récupérer la valeur choisie d'un comboBox en String dans l'événement selectionChanged ???

    merci,

  9. #9
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Citation Envoyé par technosmile Voir le message
    svp

    une petite question:
    comment récupérer la valeur choisie d'un comboBox en String dans l'événement selectionChanged ???

    merci,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboBox.SelectedItem.ToString()

  10. #10
    Membre du Club
    Étudiant
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    merci mais avec ça , ça renvoie la définition de l'objet "System....ComboBoxItem"
    !!

  11. #11
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    tu l'utilises comment ta Combo? comment tu la remplies?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/04/2012, 11h37
  2. Savoir sur quel élément l'utilisateur a cliqué
    Par samche dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2010, 14h13
  3. Savoir sur quel port le servuer apache-tomcat est lancé?
    Par proDZ dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 21/12/2009, 20h23
  4. [WiFi] savoir sur quel canal le PA est connecté
    Par interhossa007 dans le forum Hardware
    Réponses: 3
    Dernier message: 04/09/2008, 12h46
  5. [C#] Comment savoir sur quel onglet on est ds 1 TabControl ?
    Par Gonat dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/10/2005, 23h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo