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 :

[DataGridView] contenu d'une cellule en fonction de celui d'une autre


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 22
    Points : 18
    Points
    18
    Par défaut [DataGridView] contenu d'une cellule en fonction de celui d'une autre
    Bonjour,
    je suis confronté a un problème, dans un datagridview, j'ai 2 colonnes combobox
    la valeur des cellules de la première colonne doivent déterminer le contenu du choix de la cellule de la même ligne de la colonne suivante.

    Seulement, je ne sais pas du tout par quel bout m'y prendre...

    quelqu'un pourrait il me donner des idées de lieu ou je dois chercher ?

    Merci

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    ca depend ptete de comment ton dgv est géré, de manière automatique via datasource ou de manière manuelle

    enfin à mon avis, en cas de changement de valeur (evenement endcelledit ou un truc dans le genre)
    tu modifie tous les combobox de l'autre colonne ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    je pense avoir trouver, en fait c'est tout bête quand c'est automatique

    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
    41
     
    DataTable dt1 = new DataTable("Carac");
                dt1.Columns.Add("CaracId", typeof(int));
                dt1.Columns.Add("CaracNom", typeof(string));
                DataTable dt2 = new DataTable("Value");
                dt2.Columns.Add("ValueId", typeof(int));
                dt2.Columns.Add("CaracId", typeof(int));
                dt2.Columns.Add("ValueValeur", typeof(string));
                DataSet ds = new DataSet();
                ds.Tables.AddRange(new DataTable[] { dt1, dt2 });
                ds.Relations.Add("Carac.Value", ds.Tables["Carac"].Columns["CaracId"],
                                                ds.Tables["Value"].Columns["CaracId"]);
                ds.Tables["Carac"].Rows.Add(new object[] { 0, "c0" });
                ds.Tables["Carac"].Rows.Add(new object[] { 1, "c1" });
                ds.Tables["Carac"].Rows.Add(new object[] { 2, "c2" });
     
                ds.Tables["Value"].Rows.Add(new object[] { 0, 0, "c0v0" });
                ds.Tables["Value"].Rows.Add(new object[] { 1, 0, "c0v1" });
                ds.Tables["Value"].Rows.Add(new object[] { 2, 1, "c1v0" });
                ds.Tables["Value"].Rows.Add(new object[] { 3, 1, "c1v1" });
                ds.Tables["Value"].Rows.Add(new object[] { 4, 1, "c1v2" });
                ds.Tables["Value"].Rows.Add(new object[] { 5, 0, "c0v2" });
                ds.Tables["Value"].Rows.Add(new object[] { 6, 2, "c2v0" });
     
     
                this.InitializeComponent();
     
                BindingSource sourcecarac = new BindingSource();
                sourcecarac.DataSource = ds;
                sourcecarac.DataMember = "Carac";
                BindingSource sourcevalue = new BindingSource();
                sourcevalue.DataSource = sourcecarac;
                sourcevalue.DataMember = "Carac.Value";
     
                ColCarac.DataSource = sourcecarac;
                ColCarac.DisplayMember = "CaracNom";
                ColCarac.ValueMember = "CaracId";
     
                ColValue.DataSource = sourcevalue;
                ColValue.DisplayMember = "ValueValeur";
                ColValue.ValueMember = "ValueId";
    c'est un bon dépar, a voir si je peux l'adapter a mon cas

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    En fait, non ça ne fonctionne pas, car les sélection des données de la seconde colonne s'applique sur toute la colonne, non sur la cellule.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Existerait il un moyen d'affecter une source de donnée différente a chaque cellule et non a toute la colonne ?

Discussions similaires

  1. [XL-2007] Colorier une cellule en fonction du resultat d une formule
    Par facteur dans le forum Excel
    Réponses: 5
    Dernier message: 10/06/2014, 16h35
  2. Réponses: 2
    Dernier message: 04/05/2012, 07h50
  3. Supprimer une feuille en fonction du resultat d'une cellule
    Par Victor1 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/07/2009, 16h45
  4. [E-02] Définir les coordonnées d'une cellule en fonction de son contenu
    Par Karatégirl77 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/03/2009, 14h52
  5. Mise en forme d'une cellule en fonction de son contenu
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/01/2008, 10h42

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