Foxtable(狐表)用户栏目专家坐堂 → [求助]对第一个显示列DrawCell着色,应该怎么办


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

主题:[求助]对第一个显示列DrawCell着色,应该怎么办

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


加好友 发短信
等级:四尾狐 帖子:943 积分:7802 威望:0 精华:0 注册:2013/7/7 13:37:00
[求助]对第一个显示列DrawCell着色,应该怎么办  发帖心情 Post By:2014/3/8 17:30:00 [只看该作者]

对第一个显示列DrawCell着色,应该怎么办 ?

就是我的列显示隐藏是让用户控制的, 可是有个着色,想着让它始终对第一列着色!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/8 17:31:00 [只看该作者]

为了提高效率,可以用一个全局变量,将第一个显示列保存在这个全局变量中。

 

 


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


加好友 发短信
等级:四尾狐 帖子:943 积分:7802 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/3/8 17:36:00 [只看该作者]

可我的显示隐藏 用是的是 系统命令,Syscmd.Row.ShowHideRows(),而且列位置是可以拖动的,该如何 获取 第一个显示列?

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


加好友 发短信
等级:小狐 帖子:363 积分:3837 威望:0 精华:0 注册:2012/4/16 20:20:00
  发帖心情 Post By:2014/3/8 17:41:00 [只看该作者]

遍历列,判断是否可见,试试看可不可以


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/8 17:42:00 [只看该作者]

for i as integer = 0 tables("xxx").cols

    if tables("xxx").cols(i).Visible then

        MessaGEBOX.SHOW("第一个显示列是:"& tables("xxx").cols(i))

    end if

next


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


加好友 发短信
等级:四尾狐 帖子:943 积分:7802 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/3/8 17:44:00 [只看该作者]

那如何监测   Syscmd.Row.ShowHideRows() 事件

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/8 17:56:00 [只看该作者]

DataTables("表A").AddUserStyle("a", Color.Red, Color.White)
If e.Col.Index = 0 Then
    e.Style = "a"
End If

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


加好友 发短信
等级:四尾狐 帖子:943 积分:7802 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2014/3/8 18:03:00 [只看该作者]

DrawCell  ‘RowColorShow 着色开关,MaxProcessNum,最终进度


If RowColorShow Then  

    If e.Col.Index = 0  AndAlso e.Row.IsNull("流程进度") = False Then

        e.StartDraw()

        Dim Width As Integer = (e.Width - 2 ) * e.Row("流程进度") \ MaxProcessNum

        e.Graphics.FillRectangle(Brushes.SkyBlue,e.x + 1,e.y + 1, Width, e.Height - 2)

        e.EndDraw()

    End If

End If


If e.Col.Index = 0 ,切换显示隐藏后不行

[此贴子已经被作者于2014-3-8 18:04:31编辑过]

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


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/3/8 18:17:00 [只看该作者]

 

1、遍历列,找到第一个可视列,获取列名

 

后面只要判断一下是单元格是否是这一列的就行了


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/8 18:24:00 [只看该作者]

DataTables("表A").AddUserStyle("a", Color.Red, Color.White)
Dim lst As New List(Of Integer)
For i As Integer = 0 To e.Table.Cols.Count - 1
    If e.Table.Cols(i).Visible = True AndAlso lst.Contains(i) = False Then
        lst.Add(i)
    End If
Next
Dim str() As Integer = lst.ToArray
Array.Sort(str)
If e.Col.Index = str(0) Then
    e.Style = "a"
End If

 回到顶部
总数 11 1 2 下一页