我使用查询结果生成 DataGridView。该查询生成大量列(超过 75 个)。显然 DataGridView 并没有显示所有这些。
我编写了一个从 DataGridView 中提取数据并生成 Excel 文件或 .csv 文件的小程序。
我觉得有趣的是,除了列标题之外,Excel 和 .csv 都是正确生成的!我的意思是:所有单元格都写入文件,列标题除外。
然后我发现,如果 DataGridView 没有可视化列标题,它就不会设置它们的值。
因此,我编写了以下可怕的代码来水平滚动 DataGridView,以便在 DataGridView 中可视化列标题并提取到 Excel 或 .csv 工作:
Friend Sub ScrollTheGridToSeeColumnHeaders(ByRef dgvTheGrid As DataGridView)
If dgvTheGrid.RowCount = 0 Then
Exit Sub
End If
dgvTheGrid.SuspendLayout()
For i32ScorriCol As Int32 = 0 To dgvTheGrid.ColumnCount - 1 Step dgvTheGrid.DisplayedColumnCount(True)
dgvTheGrid.FirstDisplayedScrollingColumnIndex = dgvTheGrid.Columns(i32ScorriCol).Index
dgvTheGrid.Refresh()
Next
dgvTheGrid.ResumeLayout()
dgvTheGrid.CurrentCell = dgvTheGrid(0, 0)
End Sub
这行得通,但对用户的影响真的很可怕(他看到网格滚动到最后,并认为他犯了某种严重的错误......)。
你有没有建议不要让所有这些列都以如此可怕的方式滚动?
提前谢谢了!