web-dev-qa-db-fra.com

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

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

85
ErikE

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

datagridview.CurrentCell.RowIndex

Traitez l'événement SelectionChanged et recherchez l'index de la ligne sélectionnée comme ci-dessus.

154
fletcher

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

int index = yourDGV.SelectedRows[0].Index;
36
Jay Riggs
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);
7
Justin Niessner
dataGridView1.SelectedRows[0].Index;

Ici, vous trouverez tout sur datagridview tutoriel C # datagridview

Lynda

6
Lyndaeldo

essayez ceci cela fonctionnera ... il vous donnera l'index de l'index de ligne sélectionné ...

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

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
}
2
HyperNova

Essayez le:

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

J'espère que cela vous aidera.

1
Raaz Salyani

Essayez DataGridView.CurrentCellAddress .

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

PAR EXEMPLE. Sélectionnez la première colonne et la cinquième ligne et vous obtiendrez: Point (X = 1, Y = 5)

1
Kilanash

J'ai modifié la réponse de @JayRiggs, et cela fonctionne. Vous avez besoin de if parce que parfois les SelectedRows peuvent être vides, l'opération d'index lève une exception.

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

Vous pouvez essayer ce code:

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

J'ai utilisé si obtenir la valeur de la ligne est cliqué:

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
}
0
Han Nguyen