Visual Basic 図解 基礎解説
VB.NET 2002 対応 VB.NET 2003 対応

 

Visual Basic 中学校 > 図解 基礎解説 >

DataGridに明示的に列を追加する


この説明は VB.NET 2002, VB.NET 2003 に関するものです。VB2005やVB6にはあてはまりません。

掲載している画像はVB.NET2003のものです。


 

概要

DataGridに列を追加する方法を説明します。

ここで説明する手順を実行しなくてもDataGridは自動的に列を表示することができます。しかし、自動的に表示される列は幅を変更したり、独自のイベントを受け取ったりなど細かい動作を制御することができません。

 

以下では手順を示してから、具体的なプログラム例を紹介します。 全ての作業はプログラムから行うこともできますが、ここではデザイン時にプロパティウィンドウで設定する方法を説明します。

ここではデータベースからデータを取得する場合に限って説明をします。

 

手順1 TableStyleを追加する

DataGridのプロパティウィンドウでTableStylesから以下のコレクションエディタを開き、[追加]ボタンをクリックします。

 

手順2 MappingNameを指定する

MappingNameは何でもよいのですが、ここでは仮に「DefaultTable」と入力します。

プログラム側ではここで指定したMappingNameを持つTableをデータグリッドに連結してください。具体例は後にあるサンプルコードをご覧下さい。

メモ:MappingNameはここで指定するプロパティと実際のテーブルを結びつける役割をしています。

 

手順3 GridColumnStyleを追加する

さきほどの画面でGridColumnStylesを選択して表示されるボタンを表示すると以下の画面が表示されます。

この画面で[追加]をクリックします。

 

手順4 MappingNameを指定する

MappingNameには実際にデータベースから取得するときのデータの列名を指定します。

この画面でWidthを指定して列幅を変更したり、Alignmentでテキストの位置を調節したりといくつかの細かい設定が可能です。

以上

 

プログラム例

上記の設定を利用した列を表示する例

Dim Cn As SqlClient.SqlConnection

'データベースへの接続方法は環境により異なります。以下の行を適当に書き換えてください。
Cn = New SqlClient.SqlConnection("Server=(local);User ID=sa;Password=;Initial Catalog=pubs")

Dim sqlSelect As New SqlClient.SqlCommand("SELECT au_id FROM authors", Cn)
Dim Adapter As New SqlClient.SqlDataAdapter(sqlSelect)
Dim Table As New DataTable("DefaultTable")

Adapter.Fill(Table)

DataGrid1.DataSource = Table

 

上記の設定を利用して列に細かい設定をする例

'列の幅を200にします。
DataGrid1.TableStyles("DefaultTable").GridColumnStyles("au_id").Width = 200

'テキストを右寄せで表示します。
DataGrid1.TableStyles("DefaultTable").GridColumnStyles("au_id").Alignment = HorizontalAlignment.Center