关于Datagridview格式化/绘制事件的奇怪之处

时间:2014-06-05 01:50:49

标签: vb.net datagridview

 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事件,甚至将数据集中除了一条记录之外的所有记录都删除到相同的结果。

有人可以向我解释一下,我该如何解决?

0 个答案:

没有答案