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

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


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值