Получить текущий индекс столбца ячейки в событии DataGridView CurrentCellChanged

У меня есть обработчик событий CurrentCellChanged для DataGridView, и я хочу иметь доступ к текущему индексу столбца выбранных ячеек из обработчика событий.

Раньше у меня был код в обработчике CellClick, который имеет DataGridViewCellEventArgs в качестве параметра, поэтому я смог получить индекс столбца из параметра аргументов события, но событие CurrentCellChanged имеет EventArgs в качестве параметров, которые, как я полагаю, должны подразумевать, что нет данных для это событие.

Есть ли способ получить доступ к новому текущему выбранному индексу столбца ячеек?


person MBU    schedule 21.04.2011    source источник


Ответы (4)


Использовать свойство DataGridView.CurrentCell..

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.currentcell.aspx

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

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.aspx

person Akram Shahda    schedule 21.04.2011

Используйте свойство CurrentCell объекта DataGridView.

void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
{
    MessageBox.Show(dataGridView1.CurrentCell.ColumnIndex.ToString());
    MessageBox.Show(dataGridView1.CurrentCell.RowIndex.ToString());
}
person David Hall    schedule 21.04.2011

Если вы хотите проверить это с заголовком столбца, то

dataGridView.CurrentCell.Column.Header
person Bhavani Kannan    schedule 17.03.2015
comment
CurrentCell.OwningColumn.HeaderText - person Chuck D; 22.09.2017

Стоит отметить, что если кто-то использует WPFDataGrid, а не DataGridView), он может просто сделать:

DataGrid currentGrid = sender as DataGrid;

а потом

currentGrid.CurrentColumn.DisplayIndex

or

currentGrid.CurrentCell.Column.DisplayIndex
person XtraSimplicity    schedule 05.02.2015