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 :

recherche d'une combobox avec checkbox


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut recherche d'une combobox avec checkbox
    bonjour à tous.
    voilà je recherche des composants gratuits en .net
    ce soir, j'ai besoin d'une combobox munie de checkbox. j'en ai trouvé plusieurs sur codeprojets.com, mais là plupart d'entre eux étaient de vraies usines à gaz ! >_<
    ce que j'aimerais avoir, c'est une liste a laquelle on ajouterait un élément en l'instanciant, celui-ci ayant donc un ID, un nom et une variable booléen pour dire si elle est cochée ou non. mais meme après plusieurs heures sur google, je n'arrive pas à trouver.
    j'ai essayé de simplifier les bouts de codes trouvés sur la toile, mais il n'y a rien à faire. les gens qui ont créés ces composants ont vu un peu trop grands, et ceux ci sont bien trop compliqués, avec tout un tas de fonctions inutiles ...

    pourriez-vous m'aider svp ?

  2. #2
    Membre émérite 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
    Par défaut
    tu crées une classe qui hérite de CheckBox ou tu met l'ID, Name (tu le met dans la propriété Text) et le valeur bool selection ( que tu mets dans la propriété Checked), ensuite tu instancies cette classe et tu l'ajoute aux Items de ta Combo.

    ensuite tu crées une classe qui hérite de ComboBox et tu override la méthode OnDrawItem, et c'est la que tu dessines ta CheckBox.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    merci pour la réponse.
    cependant je n'ai jamais fais d'héritage O_o
    peux tu me montrer comment je peux faire pour que ma classe hérite de combobox stp ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    je pense avoir réussi une partie :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
     
    namespace ComboboxMultiselect
    {
        public class ComboboxMultiselect : CheckBox
        {
            private Guid id = Guid.Empty;
            private string text = string.Empty;
            private bool checkState = false;
     
            public ComboboxMultiselect(Guid id, string text, bool checkState)
            {
                this.id = id;
                this.text = text;
                this.checkState = checkState;
            }
     
            public Guid Value
            {
                get { return id; }
                set { id = value; }
            }
     
            public string Text
            {
                get { return text; }
                set { text = value; }
            }
     
            public bool CheckState
            {
                get { return checkState; }
                set { checkState = value; }
            }
        }
    }
    comment écrire la suite ? le but c'est d'avoir une seule dll à la fin, pour réutiliser mon nouveau composant dans tous futurs projet !
    j'aimerais aussi qu'il y ait une scrollbar dans ma combobox, et si possible définir la hauteur moi meme et tout ...

    et je dois jouer avec les évènement, lorsque je coche une case par exemple ...

    merci

  5. #5
    Membre émérite 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
    Par défaut
    Bon tu veux qu'on développe à ta place ^^, allé un petit exercice pour se rafraichir la mémoire,

    tu peux t'en passer des deux propriétés, Text et checkState, tu hérites d'un CheckBox, utilise les propriétés, Text et Checked.

    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
     
    public class MaCheckBox : CheckBox
        {
            public MaCheckBox(Guid Id, string text, bool checkState)
            {
                Checked = checkState;
                Text = text;
                ID = Id;
            }
     
            public Guid ID
            {
                get;
                set;
            }
      }

    maintenant notre Combo:

    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
    18
    19
    20
    21
    22
    23
    24
     
    public class MaComboBox : ComboBox
        {
            public MaComboBox()
            {
                DrawMode = DrawMode.OwnerDrawFixed;
            }
     
            protected override void OnDrawItem(DrawItemEventArgs e)
            {
                if (e.Index == -1) return;
                MaCheckBox box = (MaCheckBox)Items[e.Index];
                CheckBoxRenderer.DrawCheckBox(
                    e.Graphics,
                    new Point(e.Bounds.X, e.Bounds.Y),
                    e.Bounds,
                    box.Text,
                    this.Font,
                    (e.State & DrawItemState.Focus) == 0,
                    box.Checked ? CheckBoxState.CheckedNormal :
                        CheckBoxState.UncheckedNormal);
            }
     
        }

    et pour l'utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MaComboBox comboBox = new MaComboBox();
    comboBox.Items.Add(new MaCheckBox(Guid.NewGuid(), "item1", true));
    comboBox.Items.Add(new MaCheckBox(Guid.NewGuid(), "item2", false));

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    merci pour le code. a vrai dire je l'avais trouvé sur www.codeproject.com
    mais celui-ci présente plusieurs défauts :
    - pas d'hauteur minimum ou maximum
    - pas d'ascenseur
    - lors de multiples survoles, les textes deviennent de plus en plus noirs O_o

    pour ce dernier défaut, j'ai passé 1 heure à filtrer les lignes de code et à voir ce que je pouvais modifier pour l'améliorer, en vain

    non je ne veux pas que quiconque développe à ma place, car je tiens à comprendre ce que je fais ^^
    seulement je n'ai pas l'habitude avec l'héritage ou même la création de composants !
    sinon, il est vrai que ce n'est pas une usine à gaz ! donc il a du mérite ^^

    j'aimerais m'inspirer des fonctions de base de ce projet, pour l'intégration d'une checkbox a chaque ligne, le principe a l'air différent non ?
    http://www.codeproject.com/KB/combob..._combobox.aspx
    seulement je ne comprend pas tout >_<

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

Discussions similaires

  1. [VBA-E] Comment remplir une comboBox avec une macro
    Par Tchupacabra dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/04/2007, 11h16
  2. [VBA-E]Recherche d'une valeur avec la colonne comme variable
    Par Corlo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/04/2007, 09h21
  3. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 15h31
  4. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  5. Réponses: 2
    Dernier message: 26/07/2004, 13h34

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