Foxtable(狐表)用户栏目专家坐堂 → 关于单元格绘制与逻辑列联动的问题


  共有2133人关注过本帖树形打印复制链接

主题:关于单元格绘制与逻辑列联动的问题

帅哥哟,离线,有人找我吗?
douglas738888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
关于单元格绘制与逻辑列联动的问题  发帖心情 Post By:2016/1/21 16:21:00 [只看该作者]

大红袍老师,我参照论坛中的例子尝试做了个单元格绘制,想实现表A中审核逻辑列未勾选的时候,审核通过列全部显示自动绘制的“未审核”(红色),但审核逻辑列勾选后,自动绘制的“已审核”(蓝色)出现,“未审核”(红色)标签关闭。不知道在这里的IF......应该怎样写来控制自动的想法。   

绘制的单元格是否只能实现手动输入文字后才能实现显示绘制,  如果用If.....   e.Style =...绘制成逻辑列单元格根据条件的色块变化这个自己会做了。
但是上述的自动形式怎样能实现,还是用绘制就不能实现。

下面是初步的代码,没有实现逻辑列控制
If e.Col.Name = "审核状态" Then
    e.StartDraw()
    Dim msg As String
    Dim tl As Integer = e.Text.Length
    Select Case tl
        Case 2
            msg = "  " & e.Text & "  "
        Case 3
            msg = " " & e.Text & " "
        Case Else
            msg = e.Text
    End Select
    If msg = "" Then Return
    If tl <= 4 Then
        e.Col.Width = 61
    Else
        e.Col.width = tl*15+1
    End If
    Dim w As Integer = e.Width - 4
    Dim h As Integer = e.Height - 4
    Dim x As Integer = e.x + (e.Width - w)/2
    Dim n As Pen
    Dim fnt As New Font("黑体",9)
    Dim br As Brus    
    If e.Text.Contains("审") Then
        n = New Pen(Color.Blue,2)
        br = New SolidBrush(color.Blue)
    Else
        n = New Pen(Color.Red,2)
        br = New SolidBrush(color.red)
    End If
    
    e.Graphics.DrawRectangle(n,x,e.y + 2,w,h)
    e.Graphics.DrawString(msg,fnt,br,x + 1,e.y + 4)
    e.Text = ""
    e.EndDraw()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/21 16:28:00 [只看该作者]

If e.Col.Name = "审核状态" Then
    e.StartDraw()
    Dim w As Integer = e.Width - 4
    Dim h As Integer = e.Height - 4
    Dim x As Integer = e.x + (e.Width - w)/2
    Dim n As Pen
    Dim fnt As New Font("黑体",9)
    Dim br As object
    Dim msg As String
    If e.Row("审核") = True Then
        n = New Pen(Color.Blue,2)
        br = New SolidBrush(color.Blue)
        msg = "已审核"
    Else
        n = New Pen(Color.Red,2)
        br = New SolidBrush(color.red)
        msg = "未审核"
    End If
   
    e.Graphics.DrawRectangle(n,x,e.y + 2,w,h)
    e.Graphics.DrawString(msg,fnt,br,x + 1,e.y + 4)
    e.Text = ""
    e.EndDraw()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/1/21 16:39:00 [只看该作者]

非常感谢大红袍老师的指导!!!!!!!!!!

 回到顶部