Индекс выбранной строки в DataGridView - PullRequest
83 голосов
/ 26 августа 2010

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

Ответы [ 12 ]

149 голосов
/ 26 августа 2010

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

datagridview.CurrentCell.RowIndex

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

36 голосов
/ 26 августа 2010

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

int index = yourDGV.SelectedRows[0].Index;
7 голосов
/ 26 августа 2010
dataGridView1.SelectedRows[0].Index;

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

dataGridView1.SelectedRows.Select(r => r.Index);
6 голосов
/ 04 января 2014
dataGridView1.SelectedRows[0].Index;

Здесь вы найдете все о datagridview C # учебник datagridview

Линды

3 голосов
/ 26 апреля 2013

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

int rowindex = dataGridView1.CurrentRow.Index;
MessageBox.Show(rowindex.ToString());
2 голосов
/ 17 марта 2014

попробуйте

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
}
1 голос
/ 25 ноября 2015

Попробуйте:

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

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

1 голос
/ 11 марта 2015

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

1 голос
/ 26 августа 2010

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

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

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

0 голосов
/ 17 мая 2017

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

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...