首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我试图显示datagridview c#的行号时,我应该连接的最有效事件是什么?

当我试图显示datagridview c#的行号时,我应该连接的最有效事件是什么?
EN

Stack Overflow用户
提问于 2013-08-19 13:41:07
回答 1查看 153关注 0票数 1

我在virtualMode中使用了virtualMode,并且尝试使用CellPainting事件来显示行号,但是更新headerCell.Value的事实导致CellPainting事件继续在infinite loop中触发。我看了一下RowPostPaint,但这似乎也是无限循环的结果。在这段代码中,是否有更有效的事件,或者是禁用CellPainting事件触发的方法?

代码语言:javascript
复制
void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
  {
    if (e.ColumnIndex == -1 && e.RowIndex > -1)
    {
      dataGridView1.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
    }
  }
EN

回答 1

Stack Overflow用户

发布于 2013-08-19 13:51:42

只需向类中添加一个字段,并检查您以前是否在代码的这一部分中过

代码语言:javascript
复制
 void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
    {
        if(this.theRowCountWasPainted) return;

        if (e.ColumnIndex == -1 && e.RowIndex > -1)
        {
            dataGridView1.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
            this.theRowCountWasPainted = true;
        }
    }

每当您需要重新绘制它时,只需将this.theRowCountWasPainted设置为false

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18315298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档