103 votes

Index de la rangée actuellement sélectionnée dans DataGridView

C'est aussi simple que cela. Comment puis-je obtenir l'index de l'élément actuellement sélectionné ? Row d'un DataGridView ? Je ne veux pas que le Row je veux l'indice (0 .. n).

175voto

fletcher Points 5739

Il y a le RowIndex pour la propriété CurrentCell pour le DataGridView.

datagridview.CurrentCell.RowIndex

Manipuler le SelectionChanged et trouver l'index de la ligne sélectionnée comme ci-dessus.

1 votes

Parfait. Cela semble plus simple/rapide, même sur SelectedRows[0].Index. Est-ce que ce serait une bonne hypothèse ?

0 votes

Hmm, je n'ai pas pensé à la sélection de plusieurs lignes. Je ne suis pas sûr du comportement de la cellule courante dans ce cas.

1 votes

Comme dans Excel, la liste sélectionnée peut comporter plusieurs lignes/colonnes, mais il n'y a qu'une seule cellule courante/active. Je ne m'intéresse qu'à la ligne en cours, donc cela devrait fonctionner.

38voto

Jay Riggs Points 30783

Utilisez la propriété Index dans la collection SelectedRows de votre DGV :

int index = yourDGV.SelectedRows[0].Index;

0 votes

Pensez-vous que cela soit mieux que DGV.CurrentCell.RowIndex ?

4 votes

Dans certains cas, il se peut que la cellule actuelle ne soit pas sélectionnée, c'est donc la meilleure façon de procéder.

1 votes

@thethuthinnang quand vous n'avez sélectionné aucune ligne, la solution de @JayRiggs lancera l'erreur d'index deux. Vous feriez mieux de l'emballer avec un if

8voto

Justin Niessner Points 144953
dataGridView1.SelectedRows[0].Index;

Ou si vous voulez utiliser LINQ et obtenir l'index de toutes les lignes sélectionnées, vous pouvez le faire :

dataGridView1.SelectedRows.Select(r => r.Index);

0 votes

Utile (IndexOf n'était pas encore vraiment "sur mon radar"), mais détourné puisque l'obtention de la ligne n'est pas nécessaire. La méthode .Index est ce que je recherchais.

6voto

Lyndaeldo Points 11
dataGridView1.SelectedRows[0].Index;

Vous trouverez ici tout ce qui concerne le datagridview Tutoriel C# sur le datagridview

Lynda

3voto

sanjeev Points 109

Essayez ceci, cela fonctionnera... cela vous donnera l'index de la ligne sélectionnée...

int rowindex = dataGridView1.CurrentRow.Index;
MessageBox.Show(rowindex.ToString());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X