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

fifita92 - 15 mai 2013 à 11:04 - 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
Whismeril 12122 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 21 octobre 2018 Dernière intervention - 15 mai 2013 à 19:07
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Whismeril
Meilleure réponse
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 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.