ErikE
ErikE

Reputation: 50231

Index of Currently Selected Row in DataGridView

It's that simple. How do I get the index of the currently selected Row of a DataGridView? I don't want the Row object, I want the index (0 .. n).

Upvotes: 117

Views: 566178

Answers (12)

Lyndaeldo
Lyndaeldo

Reputation: 61

dataGridView1.SelectedRows[0].Index;

Here find all about datagridview C# datagridview tutorial

Upvotes: 6

Han Nguyen
Han Nguyen

Reputation: 11

I used if get row value is clicked:

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
}

Upvotes: 1

Raaz Salyani
Raaz Salyani

Reputation: 19

Try it:

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

I hope it will help you.

Upvotes: 1

subhankar
subhankar

Reputation: 11

You can try this code :

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

Upvotes: 0

Allan Ruin
Allan Ruin

Reputation: 5277

I modified @JayRiggs' answer, and this works. You need the if because sometimes the SelectedRows may be empty, so the index operation will throw a exception.

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

Upvotes: 3

P_Fitz
P_Fitz

Reputation: 839

Try the following:

int myIndex = MyDataGrid.SelectedIndex;

This will give the index of the row which is currently selected.

Hope this helps

Upvotes: -2

sanjeev
sanjeev

Reputation: 600

try this it will work...it will give you the index of selected row index...

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

Upvotes: 4

HyperNova
HyperNova

Reputation: 21

try this

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
}

Upvotes: 2

Kilanash
Kilanash

Reputation: 4559

Try DataGridView.CurrentCellAddress.

Returns: A Point that represents the row and column indexes of the currently active cell.

E.G. Select the first column and the fifth row, and you'll get back: Point( X=1, Y=5 )

Upvotes: 1

fletcher
fletcher

Reputation: 13750

There is the RowIndex property for the CurrentCell property for the DataGridView.

datagridview.CurrentCell.RowIndex

Handle the SelectionChanged event and find the index of the selected row as above.

Upvotes: 200

Jay Riggs
Jay Riggs

Reputation: 53593

Use the Index property in your DGV's SelectedRows collection:

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

Upvotes: 45

Justin Niessner
Justin Niessner

Reputation: 245419

dataGridView1.SelectedRows[0].Index;

Or if you wanted to use LINQ and get the index of all selected rows, you could do:

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

Upvotes: 9

Related Questions