请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

cskg0001

初级会员

33

主题

72

帖子

219

积分

初级会员

积分
219

活字格认证微信认证勋章

cskg0001
初级会员   /  发表于:2014-12-15 14:50  /   查看:8267  /  回复:10
我现在在C1FlexGrid中需要实现下面2个简单的功能。
当C1FlexGrid绑定DataTable后,有数据,然后遍历每1行
1,我要按照当前行的一些属性,来设置当前行的颜色。但是不知道怎么设置。(不是所有行都要设置)
   如在ListView好像是,listview1.item(i).forecolor=corlor.blue 这样
2,我要按照当前行的一些属性,在col(0)上显示一个图片,(不是所有行都要设置)
这个在C1FlexGrid怎么实现。。。。。。

10 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-12-15 16:41:00
沙发
回复 1楼cskg0001的帖子

1.C1FlexGrid.Rows.Style下有BackColor属性可以设置背景色。
代码参考:
  1. CellStyle cs = this.c1FlexGrid1.Styles.Add("rowBackColor");
  2.             cs.BackColor = Color.Green;
  3.             this.c1FlexGrid1.Rows[i].Style = cs;
复制代码

2.这个问题同理,C1FlexGrid的Cols下的Style属性。CellStyle.BackgroundImage。
使用上段代码,Rows替换为Cols,BackColor替换成BackgroundImage,并且设置一张图片。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
cskg0001
初级会员   /  发表于:2014-12-16 08:02:00
板凳
上面1: 这个是可以设置backcolor,但是排序后就有问题了,比如排序前(有10行),第2行变色,但排序后原来的第2行到第8行,变色的还是第2行。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-16 09:18:00
地板
回复 3楼cskg0001的帖子

没有重现你描述的问题。
测试步骤如下:
1.初始化程序,并且添加如下代码到初始化里:
  1. CellStyle cs = this.c1FlexGrid1.Styles.Add("rowBackColor");
  2.             cs.BackColor = Color.Green;
  3.             this.c1FlexGrid1.Rows[2].Style = cs;
复制代码

2.运行后,排序前的状态如下所示:



3.添加数据,Rows[2]的数据为"a",进行排序。点击ColumnHeader排序,排序后结果如下所示:

依然是数据为"a"的那行颜色为绿色。

本帖子中包含更多资源

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

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
cskg0001
初级会员   /  发表于:2014-12-17 13:55:00
5#
我的代码:
dim vDataTable as DataTable
vDataTable=getsomething("select * from 表 where aaaaa",strConnect)   '取得满足一定条件的数据
_flex.datasource=vDataTable  '将数据绑定到FlexGrid
'然后根据条件变色
dim i as integer
for i=_flex.rows.fixed to _flex.rows.count-1
  if _flex.getDataDisplay(i,"特单")="Y" then
    dim cs as cellstyle
    cs=_flex.styles.add("XX")
    cs.backcolor=color.green
    _flex.rows(i).style=cs
end if
next
查询后,显示的结果和变色都是正确的。
但排序后,变色的行还是原来的位置。
回复 使用道具 举报
cskg0001
初级会员   /  发表于:2014-12-17 14:49:00
6#

补2张图:

第一张,查询后正常显示的,  颜色是按"特单='Y‘“ 判断的,排序是合同编号 正序排列



第二张,点击合同编号列,倒序排列



第二张,变色的还是原来的列。。。

本帖子中包含更多资源

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

x
回复 使用道具 举报
cskg0001
初级会员   /  发表于:2014-12-17 15:00:00
7#
回复 1楼cskg0001的帖子

1.C1FlexGrid.Rows.Style下有BackColor属性可以设置背景色。
代码参考:
[
Alice 发表于 2014-12-15 16:41:00


还有关于我的第二个问题,我不是所有行的某列要加上图片,而是在当前行满足一定条件后,才显示图片。
(你给我的回答是在某列上都会显示图片的......)
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-17 17:20:00
8#
回复 6楼cskg0001的帖子

在Unbound的模式下没有问题。
如果是在绑定模式下设置颜色,请调用C1FlexGrid的AfterDataRefresh事件,在该事件中判断getDisplay(i,"特单")="Y",就设置CellStyle,否则的话,将Rows[index].Style设置为this.c1FlexGrid1.Styles["Default"]还原。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-17 17:23:00
9#
回复 7楼cskg0001的帖子

如果是对单元格进行设置图片的话,可以使用C1FlexGrid.SetCellImage方法或是C1FlexGrid.SetCellStyle方法。
这两个方法的语法为:      
        public void SetCellImage(int row, int col, Image newImage);
        public void SetCellStyle(int row, int col, CellStyle newStyle);
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
cskg0001
初级会员   /  发表于:2014-12-18 10:03:00
10#
可以了,非常感谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部