Это так просто. Как мне получить индекс текущего выбранного Row
из a DataGridView
? Мне не нужен Row
объект, мне нужен индекс (0 .. n).
Ответы:
Есть RowIndex
свойство для CurrentCell
свойства для DataGridView.
datagridview.CurrentCell.RowIndex
Обработайте SelectionChanged
событие и найдите индекс выбранной строки, как указано выше.
CurrentCell
возвращает «активную» ячейку, которая отличается от «Выбрано». Даже если выбрано несколько строк, активная ячейка может быть где-то еще, и может быть только одна активная ячейка
Используйте свойство Index в коллекции SelectedRows вашего DGV:
int index = yourDGV.SelectedRows[0].Index;
if
dataGridView1.SelectedRows[0].Index;
Или, если вы хотите использовать LINQ и получить индекс всех выбранных строк, вы можете сделать:
dataGridView1.SelectedRows.Select(r => r.Index);
dataGridView1.SelectedRows[0].Index;
Здесь вы найдете все о datagridview C # datagridview tutorial
Линда
попробуй это
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
}
Я изменил ответ @JayRiggs, и это работает. Вам нужен, if
потому что иногда SelectedRows может быть пустым, поэтому операция индекса вызовет исключение.
if (yourDGV.SelectedRows.Count>0){
int index = yourDGV.SelectedRows[0].Index;
}
Попробуйте DataGridView.CurrentCellAddress .
Возвращает: точка, представляющая индексы строки и столбца текущей активной ячейки.
EG Выберите первый столбец и пятую строку, и вы вернетесь: Point (X = 1, Y = 5)
DataGridView.CurrentCellAddress.Y
Попытайся:
int rc=dgvDataRc.CurrentCell.RowIndex;** //for find the row index number
MessageBox.Show("Current Row Index is = " + rc.ToString());
Надеюсь, это вам поможет.
datagridview.CurrentCell.RowIndex
. Приношу свои извинения - я рекомендую удалить этот пост как полную копию.
Я использовал, если щелкнули получить значение строки:
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
}