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

VB.NET Discussion :

Evenements liés au datagridview [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut Evenements liés au datagridview
    Bonjour,

    j'ai un datagridview avec deux colonnes. les deux colonnes sont constituées de combobox. la deuxième colonne est remplie sur base des choix faits dans la première colonne.
    par exemple :
    colonne A ligne 1 : choix 1 -> colonne B ligne 1 : liste 1
    colonne A ligne 2 : choix 2 -> colonne B ligne 2 : liste 2
    colonne A ligne 3 : choix 3 -> colonne B ligne 3 : liste 3
    colonne A ligne 4 : choix 1 -> colonne B ligne 4 : liste 1
    .
    .
    .

    je ne sais pas quel événement utilisé de la datagridview pour remplir la colonne B suite au choix de la colonne A. de plus comment fait-on pour récupérer la valeur du choix introduit dans la combobox du datagridview?

    d'avance merci pour vos réponse.

    Madfox48

  2. #2
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Bonjour,

    Et pourquoi ne pas jouer sur l'event SelectedIndexChanged de la combobox ?
    Lors du changement d'index, un event se produit, et dedans tu tapes ton code pour charger ta 2éme colonne.



    valeur du choix introduit
    Introduit ... Via le texte de la combo (si combo modifiable), ou via un changement d'index de la combo ?
    Si via text, et bien TaCombo.text (et dans ce cas là, ne pas oublier l'event textchanged), et si via l'index alors TaCombo.SelectedItem ?


    Je m'exprime mal mais j'espère t'avoir éclairé un petit peu
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Dans l'event CellValidating :
    • on teste si la cellule validée est en colonne A,
    • si c'est le cas, on modifie le dataSource de la colonne B en fonction de e.FormattedValue.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    bonjour et merci pour vos réponses.....

    j'ai encore une petite question : comment peut-on vider la combobox de la colonne B si l'utilisateur change le choix dans la colonne A?
    en effet, pour l'instant, si l'utilisateur prend choix1 dans la colonne A, la colonne B sera alimentée par la liste1.
    Mais s'il change d'avis et prend choix2, on retrouvera dans la colonne B la liste 1 plus la liste 2.
    je pensais que l'on pouvait utiliser le meme systeme que les combobox traditionnelle c-à-d avec clear().

    d'avance merci pour vos réponses.

    Madfox48

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Ce n'est pas la ComboBx qu'on "clear", mais sa DataSource qu'on change où qu'on réinitialise.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Salut Graffito,

    je met en pièce joint mon code ainsi que le message d'erreur. pourrais-tu me donner ton avis et le cas échéant m'aider à trouver mon erreur. j'ai suivi ton conseil mais il me génère une erreur lorsque l'utilisateur décide de changer une valeur dans la première colonne.

    d'avance merci pour ton aide et tes conseils.

    Madfox48
    Images attachées Images attachées   

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    - caster sender en DataGridView,
    - modifier les propriétés des column :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim DgvCbc As DataGridViewComboBoxColumn = DirectCast(DirectCast(sender,DataGridView).Columns(0), DataGridViewComboBoxColumn)
    DgvCbc.DataSource = objetdatatable
    DgvCbc.DisplayMember = "Nom"
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Merci Graffito pour ta proposition de solution.... mais ça ne fonctionne pas. en fait l'erreur est générée au moment du end sub de de l'événement "Cellvalidated".

    Mais je viens de trouver finalement la solution à partir de ta proposition : je crèe une variable temporaire DataGridViewComboBoxCell. elle recevra toutes les informations de mon Select et ensuite j'affecte à la cellule du datagridview concernée ma DataGridViewComboBoxCell temporaire.
    Voici les lignes de code en substance:

    Dim comboboxcell As New DataGridViewComboBoxCell
    comboboxcell.DataSource = objetdatatable
    comboboxcell.DisplayMember = "Nom"
    sender.rows(e.RowIndex).cells(1) = comboboxcell


    juste une dernière petite question : comment remettre l'index de la sélection de la Combox de la GDV à -1 ?

    Encore merci pour tes interventions constructives, Graffito......

    Madfox

  9. #9
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    comment remettre l'index de la sélection de la Combox de la GDV à -1 ?
    Comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim cbox as ComboBox=DirectCast(theDataGridViewComboBoxColumn,ComboBox) 
    cbox.SelectedIndex=-1 ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Merci pour ton aide graffito....

    Madfox48

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

Discussions similaires

  1. Evenement DataError et Datagridview
    Par misa dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/12/2010, 22h09
  2. Problèmes Evenement dans un DataGridView
    Par Loubna.B dans le forum C#
    Réponses: 10
    Dernier message: 07/07/2009, 17h37
  3. [C#VS2005]Evenement + remplissage de datagridView
    Par Papy_Guik dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/06/2008, 08h48
  4. Contrôle evenements clavier ds Datagridview
    Par twitty20 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/06/2008, 16h37
  5. [GEF] Evenements liés à la souris/clavier
    Par Garak dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 18/09/2006, 17h35

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