У меня есть DataGridView, который я использую в проекте C # Winforms. Сетка НЕ генерирует столбцы автоматически. Я вручную установил имена и свойства столбцов.
Это включает в себя DefaultCellStyle для ячеек. Я хочу, чтобы все ячейки типа DataGridViewCheckBoxColumn были выровнены по центру. Я вручную установил это выравнивание для каждого столбца этого типа в конструкторе. Эти изменения не отображаются при загрузке таблицы данных.
В качестве следующего подхода я использовал приведенный ниже код в событии DataBindingComplete (которое также не имело никакого эффекта)
foreach (DataGridViewColumn dgvc in this.dgv_Automations.Columns)
{
if(dgvc.CellType == typeof(DataGridViewCheckBoxCell))
dgvc.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
При отладке приведенному выше коду уже было установлено выравнивание по центру. Тем не менее, он все еще не отображается в сетке.
I CAN работает, если во время события DataBindingComplete я делаю что-то вроде этого:
foreach (DataGridViewRow dgvr in this.dgv_Automations.Rows)
{
dgvr.Cells["isErrors"].Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
Однако у меня есть много таких столбцов, и на самом деле не имеет смысла делать это таким образом. РЕДАКТИРОВАТЬ: Я реализовал это таким образом, и только около 10 строк есть очень заметное отставание от установки этого свойства в каждой ячейке.
Мой вопрос: как правильно это сделать? Почему дизайнер DefaultCellStyle не работает?