以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]背景颜色不会显示  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=157177)

--  作者:赤血
--  发布时间:2020/10/6 11:40:00
--  [求助]背景颜色不会显示
\'背景色和批注

If e.Table.DataTable.Type = 1 OrElse e.Table.DataTable.Type = 3
    If e.Table.DataTable.DataCols.Contains("_Identify")
        Dim dr As DataRow = DataTables("辅助_自由标记").Find("表名 = \'" & e.Table.Name  & "\' and 行号 = \'" & e.Row("_Identify") & "\'")
        If dr IsNot Nothing Then
            \'背景色
            Dim Yanse As String = dr("背景")
            Dim YSs() As String = Yanse.split("|")
            For Index As Integer = 0 To YSs.Length - 1
                Dim YSInfo() As String =  YSs(Index).split(":")
                If e.Col.Name = YSInfo(0) Then
                    Dim br2 As Brush = New SolidBrush(Color.FromARGB(YSInfo(1)))
                    Functions.Execute("ToYanse",e,br2)
                End If
            Next
        End If
    End If
End If

\'启用全局表事件--------------------------------------------------↓
For Each dt As DataTable In DataTables
    dt.GlobalHandler.DrawCell = True
    dt.GlobalHandler.KeyDown = True
    dt.GlobalHandler.CurrentChanged = True
Next


--  作者:有点蓝
--  发布时间:2020/10/6 12:10:00
--  
函数里面是什么代码?

启动全局的DrawCell就不能再使用表事件里的DrawCell 

如果是窗口表,到窗口afterload重新设置.GlobalHandler.DrawCell = True

--  作者:赤血
--  发布时间:2020/10/7 8:38:00
--  
老师,函数里面的是不是这个
Dim Points(3) As Point
Points(0) = New Point(Args(0).X,Args(0).Y)
Points(1) = New Point(Args(0).X + Args(0).Width , Args(0).Y)
Points(2) = New Point(Args(0).X + Args(0).Width , Args(0).Y + Args(0).Height)
Points(3) = New Point(Args(0).X , Args(0).Y + Args(0).Height)
Args(0).Graphics.FillPolygon(Args(1),Points)

--  作者:有点蓝
--  发布时间:2020/10/7 8:52:00
--  
看不出什么问题,请上传实例说明
--  作者:赤血
--  发布时间:2020/10/7 10:23:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

老师,您帮我看下为什么背景颜色设置了没用

--  作者:有点蓝
--  发布时间:2020/10/7 10:57:00
--  
系统列无法使用DataCols判断

If e.Table.DataTable.DataCols.Contains("_Identify")
改为
If e.Table.DataTable.basetable.Columns.Contains("_Identify")

--  作者:赤血
--  发布时间:2020/10/7 15:24:00
--  
能显示了,谢谢老师