以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]设置交替行后绘制不会显示 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169839) |
-- 作者:沪上游客 -- 发布时间:2021/7/2 20:18:00 -- [求助]设置交替行后绘制不会显示 我在表中设置了交替行,也设置了绘制单元格(DrawCell)在有颜色的行绘制就显示不出来。 代码如下: If e.Col.Name = "超期天数" AndAlso e.Row.IsNull("超期天数") = False Then e.StartDraw() Dim Width As Integer = (e.Width - 2 )* e.Row("超期天数") \\ 60 If e.Row("超期天数") > 0 Then e.Graphics.FillRectangle(Brushes.Red,e.x + 1,e.y + 1, Width, e.Height - 2) End If e.EndDraw() End If If e.Col.Name = "超期天数" AndAlso e.Row.IsNull("超期天数") = False Then e.StartDraw() Dim Width As Integer = (e.Width - 2 )* e.Row("超期天数") \\ -60 If e.Row("超期天数") <= 0 Then e.Graphics.FillRectangle(Brushes.Green,e.x + 1,e.y +1, Width, e.Height - 2) End If e.EndDraw() End If 是不是图层的问题,能不能把绘制设置在顶层?请老师指教一下,谢谢! 下面是两种效果 |
-- 作者:有点蓝 -- 发布时间:2021/7/3 9:14:00 -- 不要使用样式,自己在drawcell绘制交替行 Dim i As Integer = e.Row.Index Mod 2 If e.Col.Name = "超期天数" AndAlso e.Row.IsNull("超期天数") = False Then e.StartDraw() Dim Width As Integer = (e.Width - 2 )* e.Row("超期天数") \\ 60 If e.Row("超期天数") > 0 Then e.Graphics.FillRectangle(Brushes.Red,e.x + 1,e.y + 1, Width, e.Height - 2) End If e.EndDraw() elseif i=1 then e.style = "样式1" End If |