找回密码
 立即注册

QQ登录

只需一步,快速开始

wangzebin

注册会员

10

主题

27

帖子

81

积分

注册会员

积分
81
wangzebin
注册会员   /  发表于:2016-9-22 09:30  /   查看:3782  /  回复:6
我想设置标题的背景色是灰白色,左侧行号列的背景色是白色,现在使用的Styles.add 发现数据大了以后,效率很低,请问有什么其他方式可以解决吗

6 个回复

倒序浏览
unity
社区贡献组   /  发表于:2016-9-22 10:13:47
沙发
考虑式样共享的问题。
不要为每个单元格add一个新新式样。

需要规划好有哪些式样,然后在初始化是将这些式样add好。

在显示数据时,直接使用预先设定的式样就行了。

评分

参与人数 1金币 +600 收起 理由
Alice + 600

查看全部评分

回复 使用道具 举报
wangzebin
注册会员   /  发表于:2016-9-22 10:39:53
板凳
unity 发表于 2016-9-22 10:13
考虑式样共享的问题。
不要为每个单元格add一个新新式样。

通过range区域设置的效率也很低,
回复 使用道具 举报
wangzebin
注册会员   /  发表于:2016-9-22 10:40:47
地板
wangzebin 发表于 2016-9-22 10:39
通过range区域设置的效率也很低,

我现在是通过range进行设置的区域样式, 比如行号列背景白色,就是从第一行到最后,然后第一列,也很慢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-9-22 14:10:17
5#
wangzebin 发表于 2016-9-22 10:40
我现在是通过range进行设置的区域样式, 比如行号列背景白色,就是从第一行到最后,然后第一列,也很慢

主要看你有多少样式,如果特别多的话会受到影响。
你可以通过使用SetCellStyle 方法来指定样式到单元格上做到这一点,但是当单元格值发生变化时随时更新这个样式。同样的,如果表格绑定到数据源的话,在数据源发生重置时样式会丢失(如排序和过滤操作执行之后)。

在这种情况下,一个好的替代方案是使用表格的OwnerDraw功能来动态选择样式。
  1. _flex.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw;
  2. _flex.OwnerDrawCell += new
  3. C1.Win.C1FlexGrid.OwnerDrawCellEventHandler(_flex_OwnerDrawCell); {
  4. //
  5. }
  6. }
复制代码


评分

参与人数 1满意度 +5 收起 理由
wangzebin + 5 效果比较好

查看全部评分

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
wangzebin
注册会员   /  发表于:2016-9-23 09:25:18
6#
Alice 发表于 2016-9-22 14:10
主要看你有多少样式,如果特别多的话会受到影响。
你可以通过使用SetCellStyle 方法来指定样式到单元格 ...

好的,我尝试一下,谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-9-23 14:07:03
7#
wangzebin 发表于 2016-9-23 09:25
好的,我尝试一下,谢谢

不用客气。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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