Récupérer la valeur d'un champ dans une datagrid [Résolu]

- - Dernière réponse :  fifita92 - 16 mai 2013 à 10:35
Bonjour SVP je veux récupérer la valeur d'un champ qui se trouve dans une datagrid mais toujours me donne cette erreur "An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll

Additional information: Index was out of range. Must be non-negative and less than the size of the collection.
" voila le code :
  private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
int n = int.Parse(dataGridView1.SelectedRows[0].Cells[8].Value.ToString());
            
            if (e.ColumnIndex == 1)
            {
                Form f = new vue.Vente.Vente2();

                List l = bd.Produit.ToList();
                for (int i = 0; i < l.Count(); i++)
                {
                    if (l[i].IdProduit == n)
                    {

                      
                        Vente2.t.Text = l[i].DesignationProduit;

                    }

                }

             

              f.Show();
            }
        }

mais quand je met le même code dans un bouton je peux récupérer la valeur de n'importe quel champ et de meme pour ce code si je fais
int n = int.Parse(dataGridView1.Rows[0].Cells[8].Value.ToString());

il me récupére la valeur de la première ligne mais moi je veux récupérer de la ligne sélectionner .
Merci d'avance :)
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
12361
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
9 décembre 2018
3
Merci
C'est un peu confus, ton code marche ou te fais une erreur?


int n = int.Parse(dataGridView1.Rows[0].Cells[8].Value.ToString());


il me récupére la valeur de la première ligne mais moi je veux récupérer de la ligne sélectionner .
Merci d'avance :)


Pour cette partie c'est normal, tu lui demandes Row[0], donc c'est elle qu'il te donne.
Essaye ça
int index = dataGridView1.SelectedRows[0].Index;//récupère l'index de la première ligne sélectionnée
int n = int.Parse(dataGridView1.Rows[index].Cells[8].Value.ToString());

Whismeril

Merci Whismeril 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Whismeril
3
Merci
Merci pour votre aide ,en effet le problème c'était pas au niveau du code ,j'ai pu résoudre le problème c'était seulement au niveau des propriétés de la datagrid il faut juste modifier la propriété selectionMode par FullRowSelect comme ça une fois je clique sur la ligne j'aurai toute la ligne sélectionner , c'est pas comme auparavant il m’apparait que j'ai sélectionné toute la ligne mais c'est pas le cas .
Merci :).

Merci fifita92 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de fifita92

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.