以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]单元格颜色 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175521) |
-- 作者:2425004926 -- 发布时间:2022/3/8 10:43:00 -- [求助]单元格颜色 我想让颜色这一列,选中一个颜色值时,单元格立即就变成这种颜色, PrepareEdit事件代码中的几个值是我在中英文颜色对照表中选的几个值, DrawCell事件中红色的代码应该怎么写? PrepareEdit事件代码 If e.Col.Name = "颜色" Thene.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 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2022/3/8 11:18:00 -- 谢谢!OK! AddUserStyle这个函数的说明在哪里能看到
|
-- 作者: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”。 如何改,请老师指点一下 |
-- 作者:有点蓝 -- 发布时间:2022/3/8 11:49:00 -- 以下是引用2425004926在2022/3/8 11:18:00的发言:
帮助搜“AddUserStyle”
谢谢!OK! AddUserStyle这个函数的说明在哪里能看到
|
-- 作者:有点蓝 -- 发布时间:2022/3/8 11:51:00 -- 以下是引用2425004926在2022/3/8 11:37:00的发言: 颜色值的转换看2楼在窗口中有一个按钮,按钮的名称 和 表中 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”。 如何改,请老师指点一下 ColorTranslator.FromHtml(r("颜色"))
[此贴子已经被作者于2022/3/8 11:51:25编辑过]
|
-- 作者:2425004926 -- 发布时间: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 -- 发布时间:2022/3/8 13:24:00 -- 解决了,我又加了一列“颜色对照”,用的是Hex颜色类型,颜色列 更改后 颜色对照 也相应更改 e.Form.Controls(r("名称")).BackColor = ColorTranslator.FromHtml(r("颜色对照"))
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2022/3/8 14:29:00 -- 明白了 |