#c# #winforms #datagridview #event-handling
#c# #winforms #datagridview #обработка событий
Вопрос:
У меня есть CurrentCellChanged
обработчик событий a DataGridView
, и я хочу иметь возможность получить доступ к индексу столбца текущей выбранной ячейки из обработчика событий.
Раньше у меня был код в CellClick
обработчике, который имеет DataGridViewCellEventArgs
значение параметра, поэтому я смог получить индекс столбца из параметра event args, но у CurrentCellChanged
события есть EventArgs
параметры as, которые, как я полагаю, должны подразумевать, что для этого события нет данных.
Есть ли способ получить доступ к новому индексу столбца выбранных в данный момент ячеек?
Ответ №1:
Используйте 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
Ответ №2:
Используйте свойство CurrentCell в DataGridView.
void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
{
MessageBox.Show(dataGridView1.CurrentCell.ColumnIndex.ToString());
MessageBox.Show(dataGridView1.CurrentCell.RowIndex.ToString());
}
Ответ №3:
Если вы хотите проверить это с помощью заголовка столбца, то
dataGridView.CurrentCell.Column.Header
Комментарии:
1. Текущая ячейка. OwningColumn. Заголовок текста
Ответ №4:
Стоит отметить, что если кто-то использует WPF (с DataGrid, а не DataGridView), они могут просто сделать:
DataGrid currentGrid = sender as DataGrid;
и затем
currentGrid.CurrentColumn.DisplayIndex
или
currentGrid.CurrentCell.Column.DisplayIndex