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

QQ登录

只需一步,快速开始

sgs

中级会员

74

主题

219

帖子

637

积分

中级会员

积分
637

活字格认证微信认证勋章

sgs
中级会员   /  发表于:2014-12-4 15:47  /   查看:5355  /  回复:3
使用产品手册180页方法,设置了行号,但是筛选后行号不是连续的了,请教如何修改?

3 个回复

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

你是使用的OwernerDrawCell画行号的方法么?
过滤后,行只是被隐藏了,但实际是存在的,而且所有行的顺序和在Rows集合中的Index都是不变得。
如果你需要重现画行号,需要在OwerDrawCell中加入判断,判断你要画行号的行是否被隐藏。
  1. if (!(flex.Rows[e.Row].IsVisible))
复制代码

就是如上的判断条件,如果这行没有被隐藏,就给e.Text赋值。自定义一个int num=0;初始化为1.每次给e.Tex赋值之后该值增加1.
  1. if (!(flex.Rows[e.Row].IsVisible)&(e.Row >= this.c1FlexGrid1.Rows.Fixed) & (e.Col == (this.c1FlexGrid1.Cols.Fixed - 1)))

  2. {
  3. e.Text = num.ToString();
  4. num++;
  5. }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
sgs
中级会员   /  发表于:2014-12-8 09:59:00
板凳
是的,是在OwernerDrawCell绘制的,但是通过你的方法,不能达成效果,鼠标一动行号就变化了
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-8 14:02:00
地板
回复 3楼sgs的帖子

鼠标动的时候会导致OwernerDrawCell重画,这段代码只是粗略的实现了这个功能,要完成还需要根据你实际的需求添加细节性的判断,比如,记一个标记,filter发生了,该标记就为true,然后采用我上段代码,如果没有发生为false,然后依然用你之前画行号的代码。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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