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#] DataGridView et CellValueChanged


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 43
    Par défaut [C#] DataGridView et CellValueChanged
    Bonjour,

    Est-ce possible de changer la valeur d'une colonne en fonction d'autres colonnes ?
    Je suppose que mon code ne marche pas car il boucle sur le CellValueChanged

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void dgrvPreparer_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
       int iLigne = dgrvPreparer.CurrentCell.RowIndex;
       switch (dgrvPreparer.CurrentCell.OwningColumn.Name)
       {              
         case "NB_MALE" :                
             if (dgrvPreparer[5, iLigne].Value.ToString() != "")                    
                 dgrvPreparer[7, iLigne].Value = 12;  // Ca boucle
    Mes 2 colonnes sont bien ReadOnly=false;
    Peut-être y a t-il une autre façon de faire ?
    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 43
    Par défaut
    En passant par CellValidated ça marche
    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
     
    private void dgrvPreparer_CellValidated(object sender, DataGridViewCellEventArgs e)
    {
            int iLigne = e.RowIndex;
            int iCol = e.ColumnIndex;
            int nb_total;
            int nb_male = 0, nb_femelle = 0;
            switch (iCol)
            {
                case 5:  // NB_MALE
                case 6:  // NB_FEMELLE
                    if (dgrvPreparer[5, iLigne].Value.ToString() == "")
                        nb_male = 0;
                    else
                        nb_male = int.Parse(dgrvPreparer[5, iLigne].Value.ToString());
                    if (dgrvPreparer[6, iLigne].Value.ToString() == "")
                         nb_femelle = 0;
                    else
                       nb_femelle = int.Parse(dgrvPreparer[6,iLigne].Value.ToString());
     
                    nb_total = nb_male + nb_femelle;
                    // OK ca marche
                    dgrvPreparer[7, iLigne].Value = nb_total;
                    break;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 43
    Par défaut
    Par contre, je ne comprends pas quand il fait le dgrvPreparer_CellValidated
    Je mets un drapeau stop en "deboggage" dans cette procédure :

    1er essai :
    Je change ma valeur --> ok il passe dedans
    Je clique sur un bouton de la forme : --> ok il ne passe pas dedans

    2eme essai :
    Je change ma valeur --> ok il passe dedans
    Je sors du DataGridView --> il repasse dedans (bizarre non ?)

  4. #4
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Je confirme, il est bizarre le DataGridView avec son CellValidated
    JE crois me souvenir avoir utilisé un booléen que je mettais à vrai quand j'éditais vraiment une cellule, histoire que le code ne soit exécuter que quand j'ai vraiment besoin de faire une validation...

Discussions similaires

  1. [Débutant] datagridview.cellvaluechanged sur une partie du datagridview
    Par ozthewizard dans le forum VB.NET
    Réponses: 16
    Dernier message: 27/09/2011, 10h22
  2. Event CellValueChanged Datagridview
    Par bobo10 dans le forum VB.NET
    Réponses: 0
    Dernier message: 18/12/2009, 16h18
  3. Réponses: 3
    Dernier message: 23/10/2009, 15h53
  4. [c#] datagridview - trouver postion de la selection
    Par zeroox dans le forum Windows Forms
    Réponses: 7
    Dernier message: 15/04/2009, 12h48
  5. Réponses: 13
    Dernier message: 04/03/2009, 23h05

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