VB.NET DataGridView ノート

2017.4.25

データグリッドビューのフォントサイズを変更する方法

データグリッドビュー全体の設定する場合。

DataGridView.CellTemplate.Style.Font

データグリッドビューのカラムに対して設定する場合。

DataGridViewTextBoxColumn.RowTemplate.DefaultCellStyle.Font = New Font(DataGridViewTextBoxColumn.DefaultCellStyle.Font.Name, 11)

DataGridViewTextBoxColumn で値が NULL のときに表示する値を設定する方法。

DataGridViewTextBoxColumn を DataGridView に設定して、値が NULL のとき何か決まった文字列を表示したいときに使えるテクニックです。

Dim col As New DataGridViewTextBoxColumn()
With col
	.Name = "カラム"
	.DefaultCellStyle.NullValue = "値がない"
End With
dgv.Columns.Add(col)

データグリッドビューのデータをデータテーブルに入れる方法。

データグリッドビューのデータをデータテーブルに入れて、同じデータをほかのコントロールで使用したいときに、使えます。

ポイントは、データグリッドビューの行が、DataGridViewRow で、この DataBoundItem を DataRowView に入れることで、DataRow として扱うことができるようになります。

コード

For Each dgvr As DataGridViewRow In Me.myDataGridView.Rows
	Dim dvr As DataRowView = dgvr.DataBoundItem
	myDataset.myDataTable.NewRow()
	myDataset.myDataTable.ImportRow(dvr.Row)
Next

もう少し簡単な方法があれば良いと思いますが、ループ回すしか無さそうです。

DataGridView でダブルバッファ − を使う。

データグリッドビューのダブルバッファ

データグリッドのデータソース指定

※データ絞り込みの関係で、DataView を入れている

Me.dgvデータグリッドビュー.DataSource = dv

データグリッド のデータソースを指定した後にコードを追加する。

Dim myType As System.Type = GetType(DataGridView)
Dim myPropertyInfo As System.Reflection.PropertyInfo = myType.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
myPropertyInfo.SetValue(Me.dgvデータグリッドビュー, True, Nothing)