Это должно работать лучше:
private void dataGridView1_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
DataGridViewRow row = DGV_boiteReception.Rows[e.RowIndex];
if (row.Cells["vu"].Value != null )
{
e.CellStyle.Font = new Font(DGV_boiteReception.Font,
row.Cells[0].Value.ToString() == "False" ?
FontStyle.Bold : FontStyle.Regular);
}
}
Я установил только Font
, а не весь Style
* (и я изменяю только стиль текущей ячейки форматирования, как рекомендуется .
Перед проверкой значения ячейки я также проверяю нулевое значение и сбрасываю стиль шрифта.
(*) По какой-то причине это, по-видимому, делает различие непрерывнымперерисовать вы видели.
Если ваша клетка является Checkbox
клеткой, вы должны также закодировать эти события:
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.Invalidate();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
И вы не могли бы это True
иFalse
только для обычного CheckBoxes
. Если вы установите флажок для разрешения 3-го состояния (ThreeState = true
), то будут Checked
, Unchecked
и Indeterminate
.