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 :)
Whismeril
Messages postés18638Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 3 octobre 2023629 15 mai 2013 à 19:07
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());
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 :).