ヘッダー

VB2005対応

 

非連結のボタン列を追加する

以下の例はDataGridViewの1列目に「詳細」ボタンの列を追加する。

VB2005対応

Dim ButtonColumn As New DataGridViewButtonColumn

ButtonColumn.Name = "詳細"
      '列の名前。プログラム中で使用する。
ButtonColumn.HeaderText = "詳細" '列の見出しに表示するテキスト
ButtonColumn.Text = "詳細"       'ボタンに表示するテキスト
ButtonColumn.Width = 50          '列の幅
ButtonColumn.UseColumnTextForButtonValue = True

DataGridView1.Columns.Insert(0, ButtonColumn)

 

参考:このボタンのクリックイベントに反応するためのコード

VB2005対応

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick

    If
DataGridView1.Columns(e.ColumnIndex).Name = "詳細"
Then
        '最初の行はRowIndex = 0 であることに注意
       
MsgBox(e.RowIndex + 1 & "行目の詳細ボタンがクリックされました。")
    End
If

End Sub

 

すぐに試せるサンプル

以下の例ではAccess付属のサンプルデータベースNorthWind.mdbの社員テーブルの内容を表示し、1列目に「詳細」ボタンの列を追加する。詳細ボタンをクリックするとメッセージが表示される。

サンプルの実行に必要なもの
DataGridView1
C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb ※1

※1:ご使用の環境に合わせてプログラムを変更すれば、この位置にこのmdbがなくても動作します。

 

VB2005対応

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    '▼MDBへの接続設定
    '接続設定は環境に応じて書き換えてください。

    '接続文字列の作成
   
Dim ConnectionString As String
   
Dim CommandText As String
   
Dim UserID As String = "Admin"
   
Dim Password As String = ""
   
Dim MDBFile As String = "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"

   
ConnectionString = "Provider=""Microsoft.Jet.OLEDB.4.0"";"
   
ConnectionString &= "Data Source=""" & MDBFile & """;"
   
ConnectionString &= "User ID=" & UserID & ";"
   
ConnectionString &= "Jet OLEDB:Database Password=" & Password

   
'SQLのSELECT文を作成
   
CommandText = "SELECT * FROM 社員"

   
'以上の設定からデータアダプターを生成
   
Dim Adapter As New System.Data.OleDb.OleDbDataAdapter
    Adapter =
New System.Data.OleDb.OleDbDataAdapter(CommandText, ConnectionString)

   
'▼データの読み込み

   
Dim Table As New DataTable()
    Adapter.Fill(Table)

    '▼データソースを設定してDataGridViewにデータを表示

   
Dim BindingSource1 As New BindingSource
    BindingSource1.DataSource = Table
    DataGridView1.DataSource = BindingSource1

   
'▼一列目に「詳細」ボタン列を追加

   
Dim ButtonColumn As New DataGridViewButtonColumn

    ButtonColumn.Name = "詳細"      
'列の名前。プログラム中で使用する。
   
ButtonColumn.HeaderText = "詳細" '列の見出しに表示するテキスト
   
ButtonColumn.Text = "詳細"       'ボタンに表示するテキスト
   
ButtonColumn.Width = 50          '列の幅
   
ButtonColumn.UseColumnTextForButtonValue = True

   
DataGridView1.Columns.Insert(0, ButtonColumn)

End
Sub

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick

    If
DataGridView1.Columns(e.ColumnIndex).Name = "詳細"
Then
       
'最初の行はRowIndex = 0 であることに注意
       
MsgBox(e.RowIndex + 1 & "行目の詳細ボタンがクリックされました。")
    End
If

End Sub

 


VB6対応 VB6にはDataGridViewがありません。VB6用のいくつかのグリッドコントロールが用意されていますがそれらの制御手法はここで紹介しているものとは大きく異なります。

VB.NET 2002 対応 VB.NET 2003 対応 VB.NET2002, VB.NET2003にはDataGridViewがありません。