クエリの結果を使用してDataGridViewを生成します。 このクエリは、多くの列(75以上)を生成します。明らかに、DataGridViewはそれらのすべてを表示しません。グリッド全体をスクロールせずにDataGridView ColumnHeaders値を取得
DataGridViewからデータを抽出し、Excelファイルまたは.csvファイルを生成する小さな手順を記述しました。
私が面白いと思うのは、Excelと.csvの両方が列見出しを除いて正しく生成されていることです。つまり、ALL CELLSは列見出しのファイル以外に書き込まれます。
次に、DataGridViewが列ヘッダーを視覚化しないと、値を設定しないことがわかりました。
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
これは動作しますが、ユーザーへの影響がある:その列ヘッダーがExcelまたは.csvへのDataGridViewと抽出に可視化されるように
は、だから私は働く水平方向のDataGridViewをスクロールするには、次の恐ろしいコードを書きました本当に恐ろしい(彼はグリッドが最後までスクロールするのを見て、何か悪い間違いをしたと思っている...)。これらの列がすべてこのような恐ろしい方法でスクロールせずにこのトリックを行うように提案がありますか?
事前に感謝します。
DataGridViewはDataSetのようなものにバインドされていますか?データはどこにありますか? –
DatagridViewはバインドされていません。これは、SQL Server DBからデータを読み取るDataReaderからのデータから構築されます。 EndUserが抽出を行うことを決定すると、DataReaderは閉じられます。 –