If e.RowIndex < 0 Then
Exit Sub
End If
For Each rw As DataGridViewRow In wgrid.Rows
Dim n1 As Integer = rw.Cells(5).Value + rw.Cells(6).Value
Dim n2 As Integer = rw.Cells(3).Value + rw.Cells(4).Value
Dim quo As Double = n1 / n2
If quo >= 0.5 And quo < 0.9 Then
rw.DefaultCellStyle.ForeColor = Drawing.Color.Green
ElseIf quo >= 0.9 And quo <= 1 Then
rw.DefaultCellStyle.ForeColor = Drawing.Color.Red
MsgBox("red")
End If
Next
上面的代码 - 没有MsgBox - 在Datagridview的CellPainting事件中,乍看之下很好。然后我添加了MsgBox,我很惊讶&#34; red&#34;对话框无限地弹出(或者在我看来似乎如此),在我关闭最后一个对话框后出现了一个新对话框,尽管我确定只有一条符合if条件的记录。我尝试将代码传输到RowPostPaint事件,甚至将数据集中除了一条记录之外的所有记录都删除到相同的结果。
有人可以向我解释一下,我该如何解决?