Отловить изменение флажка в datagridview - C#
Формулировка задачи:
Доброго времени суток. Есть DataGridView со столбцом DataGridViewCheckBoxColumn и др. столбцами
Пытаюсь сделать так, чтобы при нажатии на флажок вся строка закрашивалась красным
(в коде только ячейка)
Не работает. Что нужно изменить?
P.S. Как целиком закрасить строку.
WinForms
// Click по ячейке в gridEditDatabase
private void gridEditDatabase_CellClick(object sender, DataGridViewCellEventArgs e)
{
int intNumColumnDeleteAttribute=0;
// Фильтр для столбцов (обрабатывается только столбец Удаление атрибута)
if (e.ColumnIndex == intNumColumnDeleteAttribute)
{
if ((bool)gridEditDatabase[intNumColumnDeleteAttribute, e.RowIndex].Value == true)
gridEditDatabase[intNumColumnDeleteAttribute, e.RowIndex].Style.BackColor = Color.Red;
}
}Решение задачи: «Отловить изменение флажка в datagridview»
textual
Листинг программы
void gridEditDatabase_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (gridEditDatabase.IsCurrentCellDirty)
gridEditDatabase.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
public void gridEditDatabase_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
int intNumColumnDeleteAttribute = 0;
//Фильтр для столбцов (обрабатывается только столбец Удаление атрибута)
if (e.ColumnIndex == intNumColumnDeleteAttribute)
if ((bool)gridEditDatabase[intNumColumnDeleteAttribute, e.RowIndex].Value == true)
gridEditDatabase.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
else
gridEditDatabase.Rows[e.RowIndex].DefaultCellStyle.BackColor = SystemColors.ControlLightLight;
}