以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  怎么只改变单元格的颜色?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=101498)

--  作者:lhp512
--  发布时间:2017/6/1 16:11:00
--  怎么只改变单元格的颜色?
老师好,请教个问题,我的项目中表格本身有背景色,我希望在我选中单元格是单元格变色显示而整行的颜色还是不变,我是这么写的
        
e.Table.DataTable.SysStyles("CurrentRow").BackColor = Color.red (这是我这一行原来的颜色) 
        e.Table.DataTable.SysStyles("Focus").BackColor = Color.blue
        e.Table.ListMode = True

但是发现第二行没起作用,单元格颜色不变,而如果去掉第一行,那能实现单元格变色,但是整行的背景都变成了白色,也不是我想要的。

请问下我的需求能实现么?应该怎么做
[此贴子已经被作者于2017/6/1 16:14:18编辑过]

--  作者:有点色
--  发布时间:2017/6/1 16:14:00
--  
 这句去掉,或者设置成false e.Table.ListMode = false
--  作者:lhp512
--  发布时间:2017/6/1 16:20:00
--  
谢谢老师的回复。
        e.Table.DataTable.SysStyles("CurrentRow").BackColor = Color.red        
        e.Table.DataTable.SysStyles("Focus").BackColor = Color.blue
        e.Table.ListMode = False 

这么写么?我试了下还是不行哈,我是既想让当前行的背景色不变(我原来就是红色),又想让选中的单元格变成蓝色,这样写单元格是变成蓝色了,但是整行的背景色变成白色了。

--  作者:有点色
--  发布时间:2017/6/1 16:26:00
--  

 drawcell事件写代码

 

If e.Table.Current.Index = e.Row.Index Then
    If e.Table.ColSel = e.Col.Index Then
        e.Table.DataTable.AddUserStyle("样式2", color.blue, Color.black)
        e.style = "样式2"
    Else
        e.Table.DataTable.AddUserStyle("样式1", color.red, Color.black)
        e.style = "样式1"
    End If
End If