Back Color Gridview rowstyle事件在devexpress中不起作用

时间:2013-12-20 10:32:26

标签: vb.net gridview devexpress backcolor

我有这样的代码:

Private Sub GV_Data_Kerja_RowStyle(sender As System.Object, e As DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs) Handles GV_Data_Kerja.RowStyle
    If row_mod = 1 Then
        Dim c As New Color
        c = Color.Yellow
        If e.Appearance.BackColor = c Then
            e.Appearance.BackColor = Nothing
            MessageBox.Show(e.Appearance.BackColor.ToString)
        Else
            e.Appearance.BackColor = c
            MessageBox.Show(e.Appearance.BackColor.ToString)
        End If
        MessageBox.Show(e.Appearance.BackColor.ToString)
        row_mod = 0
    End If
End Sub

Sub GV_Data_Kerja.RefreshRow(RowHandled)触发,但不起作用。在放置在那里的每个消息框中,它总是返回白色。这意味着,我改变颜色的代码不起作用。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

在我看来你的代码有点有效。我试过了,它改变了颜色。但是当我删除MessageBox调试消息时它会起作用。

建议不要使用MessageBox来显示数据,因为它会干扰您尝试调试的内容,而是写入日志文件或控制台输出。

看起来你把它们调试,它们引起了各种各样的问题,你解决了原始问题,但仍然存在MessageBox问题。

答案 1 :(得分:0)

THIS可能是您在MSDN上寻找的内容。 将e.Appearance.BorderColor更改为

e.Appearance.BackColor.......

答案 2 :(得分:0)

尝试此代码:(使用GridView CustomDrawCell事件)

  Dim state As GridRowCellState
        state = DirectCast(e.Cell, GridCellInfo).State
        If (state And GridRowCellState.Selected) = GridRowCellState.Selected Then
            e.Appearance.BackColor = c
        End If