it-roy-ru.com

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

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

83
ErikE

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

datagridview.CurrentCell.RowIndex

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

149
fletcher

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

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

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

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

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

Линду

6
Lyndaeldo

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

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

попробуй это

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

Попытайся:

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

Я надеюсь, что это поможет вам.

1
Raaz Salyani

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

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

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

1
Kilanash

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

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

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

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

Я использовал, если щелкнуть значение строки 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
}
0
Han Nguyen