Foxtable(狐表)用户栏目专家坐堂 → 单元格标色


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

主题:单元格标色

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2019/5/11 16:43:00 [只看该作者]

顶下

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2019/5/11 16:56:00 [只看该作者]

有点蓝版主下班了?

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/11 17:24:00 [只看该作者]

If e.Row.IsNull(e.Col.Name) = False Then
    e.StartDraw()
    Dim cval As String = e.Row(e.Col.Name)
    e.text = ""
    Dim arr() As String = cval.Split(",")
    Dim lst As new List(of String)
    Dim g As Graphics = e.Graphics
    Dim fnt = New Font("微软雅黑", e.Table.Font.Size)
    For Each s As String In arr
        Dim h As String =  IIF(s.Contains("(已)"),"$$",IIF(s.Contains("(未)"),"@$",""))
        s = s.Replace("(已)", "").Replace("(未)", "")
        Dim w1 As Integer = g.MeasureString(s, e.Table.Font).Width
        If w1 > e.Width
            Dim k1 As Integer = Math.Floor(s.Length * ( e.Width / w1))
            Dim i2 As Integer = 0
            Do While i2 < s.Length
                Dim s2 As String = ""
                If i2+k1<s.Length-1
                    s2 = s.SubString(i2,k1)
                Else
                    s2 = s.SubString(i2)
                End If
                i2 = i2+k1
                lst.Add(h & s2)
            Loop
        Else
            lst.Add(h & s)
        End If
    Next
    Dim x As Integer = e.x + 1
    Dim y As Integer = e.Y + 1
    Dim idx As Integer = 0
    Dim h1 As Integer = g.MeasureString("A", e.Table.Font).Height
    For Each s As String In lst
        If s.StartsWith("$$") Then
            g.DrawString(s.SubString(2), e.Table.Font, Brushes.Gray, x, y)
        ElseIf s.StartsWith("@$") Then
            g.DrawString(s.SubString(2), e.Table.Font, Brushes.Blue, x, y)
        Else
            g.DrawString(s, e.Table.Font, Brushes.Black, x, y)
        End If
        y = y + h1 + 1
    Next
End If

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2019/5/11 17:30:00 [只看该作者]

明明例子的数据是对的,为啥放到我的系统里面崩溃了

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/11 17:43:00 [只看该作者]

看懂理解代码逻辑在用。

代码其实就是根据列宽计算一行可以画几个字符,然后拆分到集合里

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2019/5/11 17:45:00 [只看该作者]

我改了例子也没有问题,但是实际操作崩溃了,这个是因为什么造成的

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2019/5/11 18:05:00 [只看该作者]

查出来了 ,需要退出循环才行

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2019/5/13 10:25:00 [只看该作者]

这个代码写的已经可以满足我的要求,但是还有一点小的问题,就是如果行高不够的话,会跟下面一行同一单元格的数据重叠.有无办法如果超过行高的话,就不展示出来(利用...表示有数据)
[此贴子已经被作者于2019/5/13 10:27:30编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/13 10:36:00 [只看该作者]

以下是引用blackzhu在2019/5/13 10:25:00的发言:
这个代码写的已经可以满足我的要求,但是还有一点小的问题,就是如果行高不够的话,会跟下面一行同一单元格的数据重叠.有无办法如果超过行高的话,就不展示出来(利用...表示有数据)
[此贴子已经被作者于2019/5/13 10:27:30编辑过]

 

做个实例发上来测试


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2019/5/13 10:50:00 [只看该作者]

你看看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:判断字符和列宽.table



行高不能变



 回到顶部
总数 21 上一页 1 2 3 下一页