【发布时间】:2014-05-04 04:32:34
【问题描述】:
我只是在学习如何在虚拟模式下使用DataGridView 控件。我正在使用列表数组来存储可能很小或很大的文本文件的内容。 DataGridView 中的一个特定列需要根据单元格中的文本内容更改单元格的背景颜色。所以,我有一个事件处理程序:
private void datagridview_CellValueNeeded(
object sender, DataGridViewCellValueEventArgs e)
填充DataGridView 的每一行。我的问题是我不知道在哪里插入代码来设置背景颜色,因为在每一行中都创建了单元格(现在处于虚拟模式)。
我尝试使用 CellValueNeeded 的事件处理程序首先检查特定列 ID,然后按如下方式设置单元格背景颜色:
datagridview[e.ColumnIndex, e.RowIndex].Style.SelectionBackColor =
component_color;
component_color 是预先确定的。但是,这种方法并没有改变颜色。我还尝试处理其他事件,例如CellEnter、CellLeave、CellValueChanged、RowsAdded 和RowLeave。但是,我从调试工作中了解到,这些事件要么永远不会触发,要么在 CellValueNeeded 事件之前触发。
那么,是否可以通过处理CellValueNeeded 事件来设置在特定列中创建的单元格的背景颜色?或者我应该通过处理不同的事件来实现这一点?
【问题讨论】: