加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

解决Datagridview虚拟模式下闪烁的问题

发布时间:2020-12-17 07:56:17 所属栏目:百科 来源:网络整理
导读:Datagridview控件的虚拟模式(VirtualMode)可用于显示较大的数据量,按照MSDN中的说法,只需实现CellValueNeeded事件即可。但笔者在使用虚拟模式开发时发现:当需要显示较多数据时,特别是行和列较多的情况下,行头出现闪烁的问题,尤其是拖动滚动条的时候闪

Datagridview控件的虚拟模式(VirtualMode)可用于显示较大的数据量,按照MSDN中的说法,只需实现CellValueNeeded事件即可。但笔者在使用虚拟模式开发时发现:当需要显示较多数据时,特别是行和列较多的情况下,行头出现闪烁的问题,尤其是拖动滚动条的时候闪烁很严重。

经测试发现:是因为在CellValueNeeded事件中使用了下面的代码导致闪烁

 Private Sub DataGridView1_CellValueNeeded(sender As Object,e As System.Windows.Forms.DataGridViewCellValueEventArgs) Handles DataGridView1.CellValueNeeded
        DataGridView1.Rows(e.RowIndex).HeaderCell.Value = (e.RowIndex + 1).ToString
        '其他代码
 End Sub

后改为如下的代码后,闪烁问题解决
 Private Sub DataGridView1_CellValueNeeded(sender As Object,e As System.Windows.Forms.DataGridViewCellValueEventArgs) Handles DataGridView1.CellValueNeeded
        If DataGridView1.Rows(e.RowIndex).HeaderCell.Value Is Nothing Then
            DataGridView1.Rows(e.RowIndex).HeaderCell.Value = (e.RowIndex + 1).ToString
        End If
        '其他代码
 End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读