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


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

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

帅哥哟,离线,有人找我吗?
lsy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

Select Case 是枚举,不是遍历,针对已知,而不能针对未知。

我是尽量避免这样用的。


 回到顶部