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

来源:互联网 发布:模拟炒股大赛 知乎 编辑:程序博客网 时间:2024/05/16 12:47

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


0 0
原创粉丝点击