以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]单元格绘制  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=150914)

--  作者:miaoqingqing
--  发布时间:2020/6/10 20:40:00
--  [求助]单元格绘制
求助字符串为 废品  的行才单元格绘制
下面代码所有行都单元格颜色绘制,不懂修改
For Each ar As Row In Tables("产品").rows
    If e.Col.Name = "突显" Then
        If ar("名称").EndsWith("废品")
            e.Style = "红色"
    End If
End If
Next

--  作者:y2287958
--  发布时间:2020/6/10 20:46:00
--  
这代码肯定有问题,但不知道实际应用,无法修改,上实例。
--  作者:有点蓝
--  发布时间:2020/6/11 8:33:00
--  
    If e.Col.Name = "突显" Then
        If e.row("名称").EndsWith("废品")
            e.Style = "红色"
    End If
End If

--  作者:miaoqingqing
--  发布时间:2020/6/30 14:41:00
--  回复:(有点蓝)    If e.Col.Name = "突显...
求助,当前1个单元格边框线设置为加粗红色
--  作者:miaoqingqing
--  发布时间:2020/6/30 14:54:00
--  回复:(有点蓝)    If e.Col.Name = "突显...
if e.Row.index = e.table.rowsel and e.Col.index = e.table.colsel then 
   焦点单元格,黑色粗线,像Excle,求助
end if

--  作者:有点蓝
--  发布时间:2020/6/30 14:55:00
--  
    If e.Col.Name = "突显" Then
        If e.row("名称").EndsWith("废品")
            e.Style = "红色"
e.Graphics.DrawRectangle(Brushes.Red,e.x + 1,e.y + 1, Width, e.Height - 2)
    End If
End If


--  作者:miaoqingqing
--  发布时间:2020/6/30 15:22:00
--  回复:(有点蓝)    If e.Col.Name = "突显...

图片点击可在新窗口打开查看此主题相关图片如下:焦点单元格边框效果.jpg
图片点击可在新窗口打开查看

求助像上图Excle焦点单元格边框效果
上楼代码,报错

--  作者:有点蓝
--  发布时间:2020/6/30 15:36:00
--  
把表格样式改为foxtable经典蓝

drawcell事件
If e.Col.Index = e.Table.ColSel AndAlso e.Row.Index = e.Table.RowSel Then
    e.Graphics.DrawRectangle(New Pen(Color.Red,2),e.x + 1,e.y + 1, e.Width-4, e.Height - 4)
End If

--  作者:miaoqingqing
--  发布时间:2020/6/30 15:54:00
--  回复:(有点蓝)把表格样式改为foxtable经典蓝drawce...
上楼代码只有在焦点单元格背景色为白色是,才可以显示红色边框。如果焦点单元格已有背景色,就不显示红色边框。求助,焦点单元格有背景色时,焦点单元格也能显示红色边框

如果焦点单元格样式显示背景色和字体颜色后,下面代码,焦点单元格边框没显示红色边框:
If e.Row.index = e.Table.rowsel AndAlso e.Col.name = "正式成果名称" Then
    e.style = "样式1"
    e.Graphics.DrawRectangle(New Pen(Color.Red,2),e.x + 1,e.y + 1, e.Width-4, e.Height - 4)  \'当前表样式边框颜色设置
End If

下面代码,如果焦点单元格已有背景色及字体颜色,焦点单元格红色边框,也没显示:
Dim dr As DataRow = DataTables("单元格绘制").find("表名=\'" & e.Table.name & "\' and 列名=\'" & e.Col.name & "\' and 列值=\'" & e.Row(e.Col.name) & "\' And 停用=false")
If dr IsNot Nothing AndAlso e.Col.name = dr("列名") AndAlso e.Row(e.Col.name) = dr("列值") Then
    If dr IsNot Nothing Then
        Dim s As String = e.Table.name & e.Col.name & dr("列值")
        \'e.Table.grid.Styles.Remove("User" & s)
        e.Table.DataTable.AddUserStyle(s, Color.FromARGB(IIF(dr.Isnull("单元格颜色"),-1,dr("单元格颜色"))), Color.FromARGB(IIF(dr.Isnull("字体颜色"),-1,dr("字体颜色"))) )
        e.style =s
    e.Graphics.DrawRectangle(New Pen(Color.Red,2),e.x + 1,e.y + 1, e.Width-4, e.Height - 4) \'当前表样式边框颜色设置
    End If
End If

--  作者:有点蓝
--  发布时间:2020/6/30 16:07:00
--  
请上传实例测试