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

Windows Forms Discussion :

[C#] Combo dans un datagridview


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 28
    Par défaut [C#] Combo dans un datagridview
    Bonjour,

    je bloque sur l'accès au contenu d'une colonne de combobox dans un DataGridView.

    Ce que j'ai déjà réussi à faire:
    - insérer une colonne contenant des combos
    - spécifier les options disponibles dans chaque combo

    Ce que je n'arrive pas à faire:
    - indiquer par le code quel élément doit être sélectionné au départ en fonction du contenu de ma base de donnée. Pour information, la base de donnée contient un Integer (qui ne correspond pas forcément au SelectedIndex) et les combos affichent des String.

    En fait, je pourrai me débrouiller si seulement je trouvais comment faire:
    {Cellule(x,y)}.SelectedIndex = n

    Mais je ne vois pas de propriété ou de méthode ressemblant à ça.

  2. #2
    Membre expérimenté Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Par défaut
    Salut,

    Si j'ai bien compris, il s'agit de données genre:
    Dans la base de donnée :
    NomClt - RefTypeClt
    Clt1 - 2
    Clt2 - 7
    Clt3 - -1
    ...
    Et sur la DataGridView, tu veux afficher :
    NomClt - TypeClt
    Clt1 - Généreux
    Clt2 - Solvable
    Clt3 - Douteux
    ...
    Si c'est le cas, moi, je fais un SELECT comme ceci avec(un champ de plus):
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT NomClt,RefTypeClt,
        (CASE RefTypeClt 
         WHEN 1 THEN 'Généreux'
         WHEN 7 THEN 'Solvable'
         ELSE 'Douteux'
        END) AS TypeClt 
    FROM Clients

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //Puis je cache la colonne RefTypeClt avec:
    MaDataTableClt.Columns["RefTypeClt "].ColumnMapping = MappingType.Hidden;
     
    //Enfin la liaison avec le ComboBox comme ceci:
        ((DataGridViewComboBoxColumn)dataGridView1.Columns["Type Client"]).ValueMember = "RefTypeClt";
                ((DataGridViewComboBoxColumn)dataGridView1.Columns["Type Client"]).DisplayMember= "TypeClt";

    Comment as-tu établi la liaison du ComboBox avec le champ de la base?

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    Tu peux toujours essayer ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataGridView.Items(X).Cells(Y).Controls(IndexDuControl).SelectedItem = MonItem
    c'est juste une idée comme ça


    VinZ

  4. #4
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 28
    Par défaut
    Merci pour votre aide. Je n'aurai malheureusement pas le temps de tester cela avant Mardi.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 28
    Par défaut
    @ vinz81: Je ne trouve pas de propriété "items" dans le DataGridView, seulement une propriété "Item" qui prend les indices de colonne et de ligne en paramètres. Pas de propriété "Controls" non plus...

    @ DarkMolo: Je n'ai pas encore réussi à faire tourner ton code, mais ça ne devrait plus tarder (faut se remettre des fêtes ). Juste un détail: tel que je le comprends, on ne peut pas accéder directement au contenu d'une cellule: il faut affecter toute la colonne d'un coup?

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/03/2008, 12h09
  2. [C#] Comment se positionner dans un DataGridview
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/05/2006, 12h45
  3. [c#] se déplacer dans un datagridview
    Par padodanle51 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/03/2006, 15h15
  4. Réponses: 5
    Dernier message: 27/02/2006, 19h38
  5. [VS2005][VB.Net] Custom Format dans un DataGridView
    Par Vonotar dans le forum VB.NET
    Réponses: 10
    Dernier message: 22/11/2005, 08h15

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