Foxtable(狐表)用户栏目专家坐堂 → 如何设置锁定列标题的颜色?


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

主题:如何设置锁定列标题的颜色?

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
如何设置锁定列标题的颜色?  发帖心情 Post By:2013/8/4 8:41:00 [只看该作者]

我想把所有表锁定列的“锁头”标志去掉,并且该锁定列标题的字体颜色为红色。

锁头标志太占位置了,用标题字体颜色来标识!

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


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

PrepareEdit

 

If User.Name <> "管理员" Then
    If e.Col.Name = "第一列" Then
        e.Cancel = True
        e.Table.SetHeaderCellForeColor(e.Col.Name ,Color.Red)
    End If
End If


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


加好友 发短信
等级:六尾狐 帖子:1198 积分:7859 威望:0 精华:0 注册:2013/5/17 14:26:00
  发帖心情 Post By:2013/8/4 9:12:00 [只看该作者]

用户已经被屏蔽

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/8/4 12:31:00 [只看该作者]

谢谢 lsy老师。

我要的是这种效果
For Each tbl As Table In Tables
    For Each Cl As Col In Tbl.Cols
        If  Cl.AllowEdit = False then
            tbl.SetHeaderCellForeColor(Cl.Name ,Color.Red)
        End If
    Next
Next
[此贴子已经被作者于2013-8-4 12:31:01编辑过]

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


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

你要去掉锁,就不能用你上面的代码。

我的代码可以去锁,也可以变色,不允许编辑的,就不能编辑。

具体怎么运用,要看你的权限如何设置。


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


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

好事做到底,给你个实例。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:列标题颜色替换锁头.table

[此贴子已经被作者于2013-8-4 15:42:59编辑过]

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/8/4 15:57:00 [只看该作者]

For Each t As Table In Tables
    For Each c As Col In t.Cols
        If c.AllowEdit = False Then
            t.SetHeaderCellForeColor(c.Name ,Color.Red)
            tablecol + = t.Name & "," & c.Name
            c.AllowEdit = True
        End If
    Next
Next
===========================

这两句是什么意思啊?

            tablecol + = t.Name & "," & c.Name
            c.AllowEdit = True
[此贴子已经被作者于2013-8-4 15:57:35编辑过]

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


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

先说说效果,可达到你的要求?

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/8/4 16:05:00 [只看该作者]

是啊,锁头不见了!

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


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

思路给你理一理:

1、全局代码

Public Tablecol As String    '全局变量记录表名列名

2、Initialize

For Each dt As DataTable In DataTables
    dt.GlobalHandler.PrepareEdit = True   '使PrepareEdit全局事件有效
Next

3、AfterOpenProject

For Each t As Table In Tables
    For Each c As Col In t.Cols
        If c.AllowEdit = False Then
            t.SetHeaderCellForeColor(c.Name ,Color.Red)   '禁止编辑就变色
            tablecol + = t.Name & "," & c.Name   '表名列名加到全局变量中
            c.AllowEdit = True  '相应的列恢复编辑,目的是去掉锁头
        End If
    Next
Next

4、PrepareEdit

If tablecol.Contains(e.Table.Name & "," & e.Col.Name) = True Then   '如果全局变量中包含此表此列的名称,说明此表的此列禁止编辑
    e.Cancel = True   '取消编辑,达到c.AllowEdit = False一样的效果
End If

[此贴子已经被作者于2013-8-4 16:31:14编辑过]

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