【发布时间】:2020-04-22 02:23:57
【问题描述】:
如果我的数据集有以下记录
Col1 Col2 Col3
A D H
B E I
C F J
我想突出显示值为 C、E、F 的单元格。突出显示应在将数据源分配给 DataGridView 期间发生。尝试了 CellValueChanged 事件,但无法实现我想要做的事情。
我希望不要去迭代每个单元格并验证值。
可行吗?
TIA!
【问题讨论】:
如果我的数据集有以下记录
Col1 Col2 Col3
A D H
B E I
C F J
我想突出显示值为 C、E、F 的单元格。突出显示应在将数据源分配给 DataGridView 期间发生。尝试了 CellValueChanged 事件,但无法实现我想要做的事情。
我希望不要去迭代每个单元格并验证值。
可行吗?
TIA!
【问题讨论】:
我没有经常使用CellFormatting 或CellPainting,但我认为,在这种情况下,CellFormatting 可能是更好的选择。这个例子对我有用:
Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
Dim cell = DataGridView1(e.ColumnIndex, e.RowIndex)
Select Case TryCast(cell.Value, String)
Case "C", "E", "F"
e.CellStyle.BackColor = Color.Red
End Select
End Sub
CellFormatting 每次单元格需要格式化时都会引发每个单元格。这意味着,与CellValueChanged 不同,它会在最初创建单元格时引发。
【讨论】: