我有这样的代码:
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)
触发,但不起作用。在放置在那里的每个消息框中,它总是返回白色。这意味着,我改变颜色的代码不起作用。任何人都可以帮助我吗?
答案 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