C1TrueDBGrid 的 FetchCellStyle设置样式后,选中单元格变色的行后,HighlightRow ...
C1TrueDBGrid 的 FetchCellStyle设置样式后,选中单元格变色的行后,HighlightRow 对此单元格不生效,如何然他就不对FetchCellStyle生效呢
设置行选中样式
C1TrueDBGrid1.MarqueeStyle = C1.Win.C1TrueDBGrid.MarqueeEnum.HighlightRow
#Region " C1TrueDBGrid FetchCellStyle "
Private Sub C1TrueDBGrid1_FetchCellStyle(sender As Object, e As C1.Win.C1TrueDBGrid.FetchCellStyleEventArgs) Handles C1TrueDBGrid1.FetchCellStyle
Select Case e.Column.Name
Case "设备领用"
If C1TrueDBGrid1(e.Row, "设备领用单未归还").ToString() <> "" Then
e.CellStyle.BackColor = Color.LightYellow
e.CellStyle.ForeColor = Color.Black
End If
End Select
End Sub
#End Region
图示中,红色的部分,鼠标没点击此行时候,就让他为黄色的样式,选中后能否就为蓝色,现在选中后,也是黄色的。感觉不那么美观。老师求教,谢谢。
请参考下面的代码
通过grid.SelectedRows.IndexOf(e.Row)==-1来判断,该单元格是否是选中行(高亮),
private void C1TrueDBGrid1_FetchCellStyle(object sender, FetchCellStyleEventArgs e)
{
var grid= (C1TrueDBGrid)sender;
if (e.Row == 0 && e.Col == 3 && grid.SelectedRows.IndexOf(e.Row)==-1)
{
//var selrows = grid.SelectedRows.IndexOf(e.Row);
e.CellStyle.BackColor = Color.Green;
}
}
看起来是优先级的问题。
你可以尝试在FetchCellStyle 事件中,也对行序号做一个判断,来判断该单元格是否为HighlightRow,然后再代码设置 Richard.Ma 发表于 2024-3-4 10:01
看起来是优先级的问题。
你可以尝试在FetchCellStyle 事件中,也对行序号做一个判断,来判断该单元格是 ...
老师,我还真不知道如何判断 HighlightRow状态,您能否贴出这个事件的代码么,让我也参考下,谢谢 明天验证后给你答复 万分感谢,:lol:lol:lol:lol:lol:lol:lol:lol 收到,谢谢,我试试看,感谢老师的解答 不客气
页:
[1]