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

C# Discussion :

Bug en changeant dynamiquement le type d'une cellule DataGridView


Sujet :

C#

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 153
    Points : 161
    Points
    161
    Par défaut Bug en changeant dynamiquement le type d'une cellule DataGridView
    Bonjour,

    J'ai un bug assez étrange. En fait je veux changer le type d'une cellule lorsque j'arrive dessus (avoir une DataGridViewComboBoxCell au lieu d'une DataGridViewTextBoxCell) et seulement dans certaines conditions :
    - Cela n'arrive que sur la 7e colonne
    - Si la cellule de la deuxième colonne n'est pas vide
    - Si une seule cellule est sélectionnée

    Tout ca ecrit en C# donne le code suivant :
    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 mainGdv_CellEnter(object sender, DataGridViewCellEventArgs e)
            {
                if (e.ColumnIndex == 6)
                {
                    if (mainGdv.SelectedCells.Count == 1)
                    {
                        if (Convert.ToString((mainGdv[1, e.RowIndex].Value)) != "")
                        {
                            string oldValue = Convert.ToString((mainGdv[6, e.RowIndex].Value));
                            DataGridViewComboBoxCell cell = new DataGridViewComboBoxCell();
                            cell.DataSource = ListClient;
                            if (ListClient.Find(x => x == oldValue) == null)
                            {
                                mainGdv[6, e.RowIndex].Value = "";
                            }
                            cell.AutoComplete = true;
     
                            mainGdv[6, e.RowIndex] = cell;
                            mainGdv.BeginEdit(true);
                        }
                    }
                }
            }
    Et... ça marche plutôt bien... sauf pour la 7e ligne! Exactement la 7e ligne... pour toutes les autres ça marche!! Pour la cellule [6, 6], j'ai une exception au moment ou je remplace la cellule existante dans la GridView par ma cellule nouvellement crée :
    InvalidOperationException was unhandled.
    Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function.
    ... J'ai essaye avec d'autres données, j'ai même simplement supprimer la ligne et refait un test sur la suivante, le problème se produit systématiquement sur la cellule 6, 6.

    Une idée?

  2. #2
    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
    Essaye d'insérer l'instruction "mainGdv.EndEdit()" juste avant "string oldValue".
    Sans garantie .
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 153
    Points : 161
    Points
    161
    Par défaut
    Merci pour cette réponse, mais ça n'a pas marche

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 153
    Points : 161
    Points
    161
    Par défaut
    Bon, j'ai pas trouve et je dois livrer un truc aujourd'hui donc j'ai ajoute 7 lignes vide en haut de ma table.

    J'ai honte, je me sens mal, je me répugne....

    mais je repasserai si je finis pas trouver

Discussions similaires

  1. [XL-2010] Incompatibilité de type pour une cellule vide
    Par ninikkhuet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/05/2012, 01h04
  2. ajout dynamique de combobox dans une cellule
    Par kelvir dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2011, 14h45
  3. Modifier le type d'une cellule dans un datagridview
    Par Machine Head dans le forum Windows Forms
    Réponses: 0
    Dernier message: 06/10/2009, 12h48
  4. Réponses: 15
    Dernier message: 30/08/2008, 11h34
  5. Connaître le type d'une cellule
    Par lerico dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2007, 18h14

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