找回密码
 立即注册

QQ登录

只需一步,快速开始

qiang

注册会员

14

主题

48

帖子

199

积分

注册会员

积分
199

微信认证勋章

qiang
注册会员   /  发表于:2015-12-15 06:07  /   查看:6038  /  回复:8
1、如何给一个单元格设定背景色,实现效果:从双击事件检测到第一列单元格的值变化了,就指定当前操作行的第六列单元格的背景色为自己设定的颜色,注:Curretedcell,updatedCell,这些都试了不能达到我要的效果,请大神指点
2、TrueDB一览里面有5条数据,我想知道第2列的数据有没有重复的,可以判断出来吗?

8 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-12-15 11:49:00
沙发
回复 1楼qiang的帖子

谢谢您的反馈。
对于您的问题,请参考如下的答复:
1.单元格的背景色是通过Style.BackColor设置的。当您发现某个值改变的时候,可以通过OwnerDrawCell将您需要设计的单元格背景色通过e.Style.BackColor设置。
基本思路:
  1. foreach (C1.Win.C1TrueDBGrid.C1DisplayColumn cd in c1TrueDBGrid1.Splits[0].DisplayColumns)
  2. cd.OwnerDraw = true;
  3. void c1TrueDBGrid1_OwnerDrawCell(object sender, C1.Win.C1TrueDBGrid.OwnerDrawCellEventArgs e)
  4. {
  5. if (判断是否满足条件,如果满足条件,更改单元格的值))
  6. e.Style.BackColor = Color.Red;
  7. }
复制代码


2.没有接口可以帮助您判断数据是否重复。您可以通过遍历每个单元格的数据,判断是否有重复的值。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
qiang
注册会员   /  发表于:2015-12-15 18:17:00
板凳
回复 2楼Alice的帖子

请问一下:如果不用加事件的方法能实现吗?
如果不能实现,我有个想法:在双击单元格的事件里检测到要设定的单元格的值已经变化了,就让焦点设置到这个单元格,然后用CellStyleFlag.CurrentCell来设定背景色,这个可以实现 吗?但是单元格的焦点目前我还没有实现,本人菜鸟一个,麻烦你啦。。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-12-16 09:11:00
地板
回复 3楼qiang的帖子

不可以。

根据您的需求,您可以在双击事件里去判断值的变化,如果发生改变就通过SetCellStyle方法给您需要的单元格直接更改颜色。如果您需要跳转到某个单元格,请使用Select方法。建议不要使用CurrentCell,因为它是当前单元格,并不能设置给某个特定单元格,鼠标选择的就是当前单元格,但你切换鼠标的时候它是变化的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
qiang
注册会员   /  发表于:2015-12-16 18:13:00
5#
好,我试试。。。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-12-17 09:46:00
6#
回复 5楼qiang的帖子

谢谢反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
qiang
注册会员   /  发表于:2015-12-17 18:06:00
7#
Select 方法怎么用,例如我要跳到当前行的第6列,怎么用呢?SetcellStyle怎么又怎么用呢,今天没试出来,麻烦解答一下。。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-12-18 10:25:00
8#
回复 7楼qiang的帖子

Select方法,跳到row=0,column=6的单元格:
  1. this.c1FlexGrid1.Select(0, 6);
复制代码

给单元格(0,6)设置红色的背景色。
  1.   CellStyle cs = this.c1FlexGrid1.Styles.Add("cs");
  2.             cs.BackColor = Color.Red;
  3.             this.c1FlexGrid1.SetCellStyle(0, 6, cs);
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-1-20 14:24:00
9#
回复 7楼qiang的帖子

您的问题因为超时未响应关闭。
如果依然有问题,请跟帖。
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
      
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部