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

C’est si simple. Comment puis-je obtenir l’index de la ligne actuellement sélectionnée d’un DataGridView ? Je ne veux pas l’object Row , je veux l’index (0 .. n).

Il existe la propriété RowIndex pour la propriété CurrentCell du DataGridView.

 datagridview.CurrentCell.RowIndex 

Gérez l’événement SelectionChanged et recherchez l’index de la ligne sélectionnée comme ci-dessus.

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

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

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

 dataGridView1.SelectedRows.Select(r => r.Index); 
 dataGridView1.SelectedRows[0].Index; 

Ici vous trouverez tout sur datagridview C # datagridview tutoriel

Lynda

essayez ça ça va marcher … ça va vous donner l’index de l’index de la ligne sélectionnée …

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

essaye ça

 bool flag = dg1.CurrentRow.Selected; if(flag) { /// datagridview row is selected in datagridview rowselect selection mode } else { /// no row is selected or last empty row is selected } 

Essayez DataGridView.CurrentCellAddress .

Renvoie: Un point qui représente les index de ligne et de colonne de la cellule actuellement active.

EG Sélectionnez la première colonne et la cinquième ligne et vous reviendrez: Point (X = 1, Y = 5)

Essayez-le:

 int rc=dgvDataRc.CurrentCell.RowIndex;** //for find the row index number MessageBox.Show("Current Row Index is = " + rc.ToSsortingng()); 

J’espère que cela vous aidera.

J’ai modifié la réponse de @JayRiggs, et cela fonctionne. Vous avez besoin de if car parfois les SelectedRows peuvent être vides, donc l’opération d’index lancera une exception.

 if (yourDGV.SelectedRows.Count>0){ int index = yourDGV.SelectedRows[0].Index; } 

Vous pouvez essayer ce code:

 int columnIndex = dataGridView.CurrentCell.ColumnIndex; int rowIndex = dataGridView.CurrentCell.RowIndex; 

J’ai utilisé si la valeur de la ligne est cliquée:

 private void dataGridView_Product_CellClick(object sender, DataGridViewCellEventArgs e){ int rowIndex; //rowIndex = e.RowIndex; //Option 1 //rowIndex= dataGridView_Product.CurrentCell.RowIndex; //Option 2 rowIndex = dataGridView_Product.CurrentRow.Index; //Option 3 } 

Essayez ce qui suit:

 int myIndex = MyDataGrid.SelectedIndex; 

Cela donnera l’index de la ligne actuellement sélectionnée.

J’espère que cela t’aides