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 :

Textbox + Combobox dans une colonne datagridview [Débutant]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 60
    Par défaut Textbox + Combobox dans une colonne datagridview
    Bonjour,

    Dans mon dgv, j'ai plusieurs colonne qui s'affiche via ma table P.
    J'aurais voulu savoir si il était possible d ajouter dans une de mes colonne,une listbox(qui appartient a ma tableP) lorsque je double clic par exemple sur mon dgv?

    Merci d'avance !

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Salut,
    comment es-ce que tu remplis ton datagridview ?
    Via la propriété DataSource ou en manuel boucle + dgv.Rows.Add(colonne) ?

    Après pour ajouter une colonne si tu es dans le cas "manuel" c'est facile :
    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
     
    dgv.Columns.Add("nomDeLaColonne1", "enteteDeLaColonne1");
                dgv.Columns.Add("nomDeLaColonne2", "enteteDeLaColonne2");
                dgv.Columns.Add("nomDeLaColonne3", "enteteDeLaColonne3");
                DataGridViewRow ligne = new DataGridViewRow();
                DataGridViewTextBoxCell case1 = new DataGridViewTextBoxCell();
                DataGridViewTextBoxCell case2 = new DataGridViewTextBoxCell();
                DataGridViewComboBoxCell case3 = new DataGridViewComboBoxCell();
                case3.Items.Add("item 1");
                case3.Items.Add("item 2");
                case3.Items.Add("item 2");
                ligne.Cells.Add(case1);
                ligne.Cells.Add(case2);
                ligne.Cells.Add(case3);
                dgv.Rows.Add(ligne);
    Ce code ajoute 3 colonnes.
    Les 2 premières sont des cases normales vides.
    La troisième est une combobox qui contient 3 items.

    Si tu remplies sont dgv via un DataSource il faut (jamais fait mais je pense) utiliser la propriété DataSource relative à toute ta colonne de type combo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (dgv.Columns["nomDeLaColonne3"] as DataGridViewComboBoxColumn).DataSource = SourceDesItems
    si tu veux que toutes les combo de chaque lignes aient la même liste;
    ou en assignant la source àa chaque combo de chaque ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (dgv.rows[indexLigne].Columns["nomDeLaColonne3"] as DataGridViewComboBoxCell).DataSource = SourceDesItems
    Après à vérifier mais je crois qu'il faut assigner les prop ValueMember et DisplayMember de la colonne ou de la cellule pour avoir un affichage.

    Voila j'espère t'avoir aidé.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 60
    Par défaut
    Salut !
    En fait,je ne veux pas ajouter une colonne,je veux qu'une combobox remplis s'ajoute lors d'un double clic sur le dgv dans une colonne qui est déjà remplis par des données.
    Je pense que ton code va déjà bien m'aider si il est possible de faire ce que je cherche !

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Oui je pense que c'est possible.
    Tu t'abonne à l'événement cell double clic du dgv. En argument de la fonction tu devrais avoir l'index de la ligne et de colonne qui te permettent de repérer la case double cliquée.
    Après ça revient à faire dgv[indexColonne, indexLigne] = une nouvelle DataGridViewComboBoxCell déjà remplie.

    Tiens nous au courant a+

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 60
    Par défaut
    Je réussis bien a ajouter la ligne mais je ne vois vraiment pas comment faire pour que ma combobox s'affiche dans la derniére ligne de ma premiére colonne par exemple
    Je suis un peu perdu là a vrai dire!

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Je vais peut être dire une connerie...

    C'est quoi l'interêt de faire des cellules textbox qui se transforme en combobox lors d'un clique sur le contrôle? Pourquoi tu ne mets pas des cellules combobox dès le début ?

    A part pour une raison visuel (on ne désire pas voir le boutton du combobox) je peine à comprendre. Et encore dans ce cas, je me demande si c'est pas plus pratique de travailler sur l'evenement paint de la cellule.

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

Discussions similaires

  1. ajouter un tooltip dans une colonne datagridview
    Par ilmatic dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/03/2014, 13h13
  2. insérer une combobox dans une colonne datagridview
    Par Tommy57 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/07/2013, 16h25
  3. Réponses: 7
    Dernier message: 11/02/2013, 21h37
  4. Réponses: 2
    Dernier message: 16/11/2007, 13h39
  5. [VB.NET] Calculs dans une colonne d'un datagridview
    Par boulete dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2006, 15h11

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