我在使用datagridview时遇到了一个奇怪的问题 . 我需要更改所选单元格(A)的样式以响应另一个单元格(B)= x的值 . (A)是文本框,而(B)是组合框 . 我捕获事件CellEndEdit,当用户更改(B)的值时一切正常:(A)的样式立即改变 .
现在,当我尝试以编程方式更新datagridview时,这不起作用 . 奇怪的是两种方式共享相同的方法UpdateTimeChannelCell . 如果我以编程方式调用此方法,则datagridview不会更新其单元格的样式 . 我尝试通过更新,刷新,使datagridview无效而没有运气
private void UpdateTimeChannelCell(DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 1 || e.ColumnIndex == 3 || e.ColumnIndex == 5 || e.ColumnIndex == 7 || e.ColumnIndex == 9 || e.ColumnIndex == 11 || e.ColumnIndex == 13)
{
if ((int)this.dataGridView_TidKanaler.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == 0)
{
this.dataGridView_TidKanaler.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value = new Time();
this.dataGridView_TidKanaler.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Style = disableStyle;
}
else
{
this.dataGridView_TidKanaler.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Style = enableStyle;
}
}
}
2 回答
我不得不强制刷新我的网格以获得更新的样式 . 例如 . this.dataGridView_TidKanaler.Refresh()
据我所知,DataGridViews的所有样式都需要在DataGridView.CellFormatting事件中发生 .
此事件是您更改单元格的默认样式/着色的机会 .