Foxtable(狐表)用户栏目专家坐堂 → [求助]单元格颜色


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

主题:[求助]单元格颜色

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
[求助]单元格颜色  发帖心情 Post By:2022/3/8 10:43:00 [只看该作者]

我想让颜色这一列,选中一个颜色值时,单元格立即就变成这种颜色,
PrepareEdit事件代码中的几个值是我在中英文颜色对照表中选的几个值,
DrawCell事件中红色的代码应该怎么写?

PrepareEdit事件代码
If e.Col.Name = "颜色" Then
    e.Col.ComboList = "LightPink|Pink|Crimson|LavenderBlush"
End If

DrawCell事件中
If e.Col.Name = "颜色" And e.Row.IsNull(e.Col.Name) = False Then
    e.Style
End If

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/8 11:08:00 [只看该作者]

If e.Col.Name = "颜色" And e.Row.IsNull(e.Col.Name) = False Then
Dim s As String = e.Row(“颜色”) 
        e.Table.DataTable.AddUserStyle(s,ColorTranslator.FromHtml(s)),Color.black)
        e.Style=s
End If

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2022/3/8 11:18:00 [只看该作者]

 谢谢!OK!
AddUserStyle这个函数的说明在哪里能看到

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2022/3/8 11:37:00 [只看该作者]

在窗口中有一个按钮,按钮的名称  和  表中 r行的名称 是对应的,我想用 r行的颜色 表示这个按钮的背景色

Dim tt As String = "Color." & r("颜色")
e.Form.Controls(r("名称")).BackColor = tt

下面的代码测试结果
方法调用失败,因为“Public Overrides Property BackColor() As System.Drawing.Color”不能用这些参数调用:
    与参数“value”匹配的参数无法从“String”转换为“Color”。


如何改,请老师指点一下




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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/8 11:49:00 [只看该作者]

以下是引用2425004926在2022/3/8 11:18:00的发言:
 谢谢!OK!
AddUserStyle这个函数的说明在哪里能看到

帮助搜“AddUserStyle”

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/8 11:51:00 [只看该作者]

以下是引用2425004926在2022/3/8 11:37:00的发言:
在窗口中有一个按钮,按钮的名称  和  表中 r行的名称 是对应的,我想用 r行的颜色 表示这个按钮的背景色

Dim tt As String = "Color." & r("颜色")
e.Form.Controls(r("名称")).BackColor = tt

下面的代码测试结果
方法调用失败,因为“Public Overrides Property BackColor() As System.Drawing.Color”不能用这些参数调用:
    与参数“value”匹配的参数无法从“String”转换为“Color”。


如何改,请老师指点一下

颜色值的转换看2楼
ColorTranslator.FromHtml(r("颜色"))
[此贴子已经被作者于2022/3/8 11:51:25编辑过]

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2022/3/8 12:53:00 [只看该作者]

经测试
e.Style=Pink是可以的
e.Form.Controls(r("名称")).BackColor = Color.Pink     ‘是要加上"Color."


我把代码改了,又出现下面问题,是不是   e.Form.Controls(r("名称")).BackColor  只能等于常量,不能等于变量
Dim tt As String = r("颜色")
Tables("按钮1").DataTable.AddUserStyle(tt,ColorTranslator.FromHtml(tt),Color.black)
tt = "Color." & tt
e.Form.Controls(r("名称")).BackColor = tt
与参数“value”匹配的参数无法从“String”转换为“Color”

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2022/3/8 13:24:00 [只看该作者]

解决了,我又加了一列“颜色对照”,用的是Hex颜色类型,颜色列 更改后 颜色对照 也相应更改

 e.Form.Controls(r("名称")).BackColor = ColorTranslator.FromHtml(r("颜色对照"))

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/8 13:40:00 [只看该作者]

tt = "Color." & tt
e.Form.Controls(r("名称")).BackColor = tt

等同于:e.Form.Controls(r("名称")).BackColor = "Color.Pink"
和:e.Form.Controls(r("名称")).BackColor = Color.Pink
完全不是一回事,前者只是一个普通字符串,后者是一个颜色类型

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


加好友 发短信
等级:三尾狐 帖子:712 积分:5559 威望:0 精华:0 注册:2019/11/14 9:36:00
  发帖心情 Post By:2022/3/8 14:29:00 [只看该作者]

 明白了

 回到顶部