Индекс выбранной строки в DataGridView

Это так просто. Как получить индекс текущего выбранного Row параметра DataGridView? Мне не нужен объект Row, мне нужен индекс (0.. n).

Ответ 1

Существует свойство RowIndex для CurrentCell для DataGridView.

datagridview.CurrentCell.RowIndex

Обработайте событие SelectionChanged и найдите индекс выбранной строки, как указано выше.

Ответ 2

Используйте свойство Index в вашей коллекции DGV SelectedRows:

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

Ответ 3

dataGridView1.SelectedRows[0].Index;

Или если вы хотите использовать LINQ и получить индекс всех выбранных строк, вы можете сделать:

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

Ответ 5

попробуйте это, он будет работать... он даст вам индекс выбранного индекса строки...

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

Ответ 6

попробуйте это

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
}

Ответ 7

Попробуйте DataGridView.CurrentCellAddress.

Возвращает: точка, представляющая индексы строки и столбца текущей активной ячейки.

например. Выберите первый столбец и пятую строку, и вы вернетесь: Point (X = 1, Y = 5)

Ответ 8

Попробуйте:

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

Надеюсь, это поможет вам.

Ответ 9

Я изменил ответ @JayRiggs, и это работает. Вам нужно if, потому что иногда SelectedRows может быть пустым, поэтому операция индекса генерирует исключение.

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

Ответ 10

Вы можете попробовать этот код:

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

Ответ 11

Я использовал, если щелкнуть значение строки:

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
}

Ответ 12

Попробуйте следующее:

int myIndex = MyDataGrid.SelectedIndex;

Это даст индекс выбранной строки.

Надеюсь, что это поможет