找回密码
 立即注册

QQ登录

只需一步,快速开始

村东智叟

初级会员

29

主题

128

帖子

393

积分

初级会员

积分
393

微信认证勋章

村东智叟
初级会员   /  发表于:2022-2-8 14:03  /   查看:2036  /  回复:7
1金币


您好:
我想请教一个问题,
就是在C1FlexGrid中的单元格中的文本是有颜色的,在选中这一行后,还是想保持文本颜色不该变。请问如何实现?

未选择前,文本为蓝色


选择后,文本变成了黑色。(需求为选择后,文本依旧保持原来颜色不改变)


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

我理解你的意思,你是想要在选中一行以后,Highlight的字体颜色不生效,继续应用原有单元格的颜色。 这个目前没有什么好的办法,只能是在OwnerDrawCell事件中判断,当是选中单元格时,再去判断其本身是否有添加样式,有的话,进行设置

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-8 14:03:16
来自 4#
我理解你的意思,你是想要在选中一行以后,Highlight的字体颜色不生效,继续应用原有单元格的颜色。

这个目前没有什么好的办法,只能是在OwnerDrawCell事件中判断,当是选中单元格时,再去判断其本身是否有添加样式,有的话,进行设置

  1.                 private void _flex_OwnerDrawCell(object sender, OwnerDrawCellEventArgs e)
  2.                 {
  3.                         if (_flex.Selection.Contains(e.Row, e.Col)){
  4.                                 if(_flex.GetCellStyle(e.Row, e.Col)!=null)
  5.                                         e.Style.ForeColor = _flex.GetCellStyle(e.Row, e.Col).ForeColor;
  6.                         }
  7.         }
复制代码
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-8 14:29:27
2#
可以Highlight的字体颜色即可,参考代码取了Normal的颜色,也就是正常单元格的颜色,即可保持一致
  1. c1FlexGrid3.Styles.Highlight.ForeColor = c1FlexGrid3.Styles.Normal.ForeColor;
复制代码
回复 使用道具 举报
村东智叟
初级会员   /  发表于:2022-2-8 14:36:55
3#
Richard.Ma 发表于 2022-2-8 14:29
可以Highlight的字体颜色即可,参考代码取了Normal的颜色,也就是正常单元格的颜色,即可保持一致

不好意思,我没有表述清楚。
实际的情况是同一行的文本可能有多种颜色(一种颜色代表一种状态),并不是只有一种颜色。
这个怎么实现?
回复 使用道具 举报
村东智叟
初级会员   /  发表于:2022-2-8 17:13:34
5#
Richard.Ma 发表于 2022-2-8 17:11
我理解你的意思,你是想要在选中一行以后,Highlight的字体颜色不生效,继续应用原有单元格的颜色。

这 ...

好的,
感谢您的回复、
我尝试一下
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-8 17:21:25
6#
不客气
回复 使用道具 举报
村东智叟
初级会员   /  发表于:2022-2-8 17:34:32
7#

试过了,好像可以了。
谢谢。麻烦关一下贴子。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-8 17:44:14
8#

此帖就关闭了,有其他的问题欢迎发新帖咨询
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部