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

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

80 голосов | спросил ErikE 26 PM000000100000004931 2010, 22:13:49

10 ответов


0

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

datagridview.CurrentCell.RowIndex

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

ответил fletcher 26 PM000000100000003531 2010, 22:19:35
0
dataGridView1.SelectedRows[0].Index;

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

dataGridView1.SelectedRows.Select(r => r.Index);
ответил Justin Niessner 26 PM000000100000003631 2010, 22:18:36
0

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

int rowindex = dataGridView1.CurrentRow.Index;
MessageBox.Show(rowindex.ToString());
ответил sanjeev 26 PMpFri, 26 Apr 2013 14:49:45 +040049Friday 2013, 14:49:45
0

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

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
}
ответил HyperNova 17 MaramMon, 17 Mar 2014 08:28:24 +04002014-03-17T08:28:24+04:0008 2014, 08:28:24
0

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

  

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

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

ответил Kilanash 26 PM000000100000003931 2010, 22:21:39
0

Попробуйте:

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

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

ответил Raaz Salyani 25 32015vEurope/Moscow11bEurope/MoscowWed, 25 Nov 2015 05:00:13 +0300 2015, 05:00:13
0

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

if (yourDGV.SelectedRows.Count>0){
    int index = yourDGV.SelectedRows[0].Index;
}
ответил Allan Ruin 11 MaramWed, 11 Mar 2015 04:30:25 +03002015-03-11T04:30:25+03:0004 2015, 04:30:25
0

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

int columnIndex = dataGridView.CurrentCell.ColumnIndex;
int rowIndex = dataGridView.CurrentCell.RowIndex;
ответил subhankar 17 J0000006Europe/Moscow 2015, 15:24:01
0

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

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
}
ответил Han Nguyen 17 Maypm17 2017, 18:00:05
0

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

int myIndex = MyDataGrid.SelectedIndex;

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

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

ответил P_Fitz 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 23 Sep 2014 15:56:24 +0400 2014, 15:56:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132