システム開発 備忘録















システム開発備忘録 Visual Basic DataGridView関連

*** *** *** *** ***



データグリッドビュー(DataGridView)

'データグリッドビューのセル背景をフォームと同じにする
Datagridview1.DefaultCellStyle.BackColor = Form1.BackColor

'データグリッドビューの特定行のセル背景色を変更する
For I = 0 To Form1.DataGridView1.Rows.Count – 1
  If Trim(Form1.DataGridView1.Rows(I).Cells("ColName").Value.ToString)= strVakue Then
    For J = 0 To Form1.DataGridView1.Columns.Count - 1
      Me.DataGridView1.Rows(I).Cells(J).Style.BackColor = Color.LightGray
    Next
  End If
Next

DataGridView 列の操作

'列の非表示
Form1.DataGridView1.Columns(0).Visible = False

'列の書式設定
DataGridView1.Columns("ColDate").DefaultCellStyle.Format = "yyyy/MM/dd"
DataGridView1.Columns("ColNumber").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

'データグリッドビューの列幅自動調整
For Each objCol As DataGridViewColumn In DataGridView1.Columns
  objCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
Next

'データグリッドビューのセルを入力不可とする
For I As Integer = 0 To Me.DataGridView1.Columns.Count - 1
  Form1.DataGridView1.Columns(I).ReadOnly = True
Next

'データグリッドビューの並べ替え機能を使えなくする
For Each objCol As DataGridViewColumn In DataGridView1.Columns
  objCol.SortMode = DataGridViewColumnSortMode.Programmatic
Next

チェックボックス列を作成する

'単純にデータグリッドビューの最後にチェックボックス列を追加する
With DataGridView1
  Dim objCol As New DataGridViewCheckBoxColumn
  objCol.Name = "CHECK_COL"
  .Columns.Add(objCol)
End With

'列番号10にCheckBox列を追加する
With DataGridView1
  Dim objCol As New DataGridViewCheckBoxColumn
  objCol.Name = "CHECK_COL"
  .Columns.Insert(10, objCheckCol)
End With

'”Col_A”という名前の列の前にCheckBox列を追加する
With DataGridView1
  Dim objCol As New DataGridViewCheckBoxColumn
  objCol.Name = "CHECK_COL"
  .Columns.Insert(.Columns("Col_A").Index, objCheckCol)
End With

DataGridView データソースの設定

'データグリッドビューにデータテーブルをそのまま表示
Form1.DataGridView1.DataSource = objDT
Form1.DataGridView1.Refresh()

DataGridView データソースの設定
グリッドにデータテーブルから一部の列を抜き出した形で表示

Dim objDT As New DataTable
Dim objDTV As New DataTable
'データグリッドビュー表示用データテーブルの作成
Dim strCols As String() = {"COL1", "COL3", "COL5"}
objDTV = New DataView(objDT).ToTable("NewTable", False, strCols)
'データグリッドビューに表示する
DataGridView1.DataSource = objDTV

DataGridView 列の操作2

DataGridViewにコンボボックス列を追加する
後からコンボボックス列を追加するようにすると、
事前にグリッド側の列を定義する必要がないのですこしだけラクである。

With form1.DataGridView1

  'グリッドにデータテーブル(DTにデータが入っているとすうる)を表示
  .DataSource = DT
  
  'コンボボックス列の作成
  Dim objCboCol As New DataGridViewComboBoxColumn()
  
  '結果区分
  objCboCol = New DataGridViewComboBoxColumn()
  '"CBO_DATA"列にバインドされているデータを表示する
  objCboCol.DataPropertyName = "CBO_DATA"
  
  'ここでコンボのリスト設定するが記述は省略
  '→フォームコントロールのページのコンボボックスあたりが参考になる。
  このページのF_SetComboListFromArray関数は、引数の型を
  ComboBoxからDataGridViewComboBoxColumnに変更して簡単に作り替えられる

  'UKTK_KBN列をComboBox列に置き換える
  .Columns.Insert(.Columns("CBO_DATA").Index, objCboCol)
  .Columns.Remove("CBO_DATA")
  objCboCol.Name = "CBO_DATA"

End With




Copyright (C) 2009- station-t.com All Rights Reserved , Link Free