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

QQ登录

只需一步,快速开始

hiliuyong

初级会员

37

主题

61

帖子

270

积分

初级会员

积分
270
hiliuyong
初级会员   /  发表于:2021-9-6 23:23  /   查看:1657  /  回复:1
本帖最后由 hiliuyong 于 2021-9-6 23:25 编辑

C1Flexgrid的Pain方法和Footer设置冲突
如附件下面代码是要给每一行的行头加一个序号;不知道是不是因为FOOTER设置会改变行,而这段代码遍历了行
  1. private void C1FlexGridEx_Paint(object sender, PaintEventArgs e)
  2.         {
  3.          //行序号,原来用OnOwnerDrawCell,资源消耗大
  4.         int i = 0;
  5.        foreach (Row row in this.Rows)
  6.        {
  7.              if (i != 0)
  8.              {
  9.                      row[0] = i;
  10.               }
  11.              i++;
  12.          }
  13.         }
复制代码


本帖子中包含更多资源

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

x

1 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-7 09:46:08
沙发
和footer无关,建议可以这样写
  1.             for (int i = 0; i < this.Rows.Count; i++)
  2.             {
  3.                 if (i != 0)
  4.                 {
  5.                     this.Rows[i][0] = i;
  6.                 }

  7.             }
复制代码


另外理论上来说OwnerDrawCell是会对每个单元格单独渲染,性能应该比这个整体的要好,不会重复渲染,也可以参考代码

  1.         protected override void OnOwnerDrawCell(OwnerDrawCellEventArgs e)
  2.         {
  3.             base.OnOwnerDrawCell(e);
  4.             if (e.Col == 0&&e.Row!=0)
  5.             {
  6.                 e.Text = e.Row.ToString();
  7.             }
  8.             
  9.         }
复制代码

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部