マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部
エバンジェリスト 高橋 忍

最終更新日 2006 年 3 月 3 日

このコンテンツのポイント

  • DataGridView の機能を理解する。

今回紹介するコード

<Form1.vb>

Visual Basic
Public Class Form1
    Public Sub New()
        ' この呼び出しは、Windows フォームデザイナで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        DataGridView1.Rows.Add("msn", "Personal", True, "http://www.msn.co.jp")
        DataGridView1.Rows.Add("Microsoft", "Personal", False, "http://www.microsoft.com/")
        DataGridView1.Rows.Add( _
        "MSDN Japan", "Developer", True, "http://www.microsoft.com/japan/msdn/")

        Dim tcs As New DataGridViewCellStyle
        tcs.BackColor = Color.Yellow
        Me.DataGridView1.AlternatingRowsDefaultCellStyle = tcs

        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        DataGridView1.Columns(0).DividerWidth = 2
        DataGridView1.AllowUserToOrderColumns = True

    End Sub
End Class
 

今回のシステム要件

  • Visual Studio 2005

目次

はじめに
作成するアプリケーションの概要
アプリケーションの作成
動作と解説
おわりに

Visual C# の内容はこちらに掲載しています。
10 行でズバリ !! 複合 Grid の作成 (C#)

 


はじめに

Windows Forms 2.0 で新しく追加された、DataGridView コントロールは様々な機能を持つ Grid コントロールです。ここでは、この DataGridView の表現力について、その一部をサンプルを作成しながら紹介します。

作成するアプリケーションの概要

ここでは、様々なコントロールをカラム要素として持った Grid コントロールを持つアプリケーションを作成します。

アプリケーションの作成

まず、新規に Windows アプリケーションを作成します。Visual Studio 2005 の [ファイル] メニューをクリックし、[新規作成] をポイントして、[プロジェクト] をクリックします。 [新しいプロジェクト] ダイアログ ボックスが表示されたら、プロジェクトの種類として 「Visual Basic」 の 「Windows」 を選択し、テンプレートとして 「Windows アプリケーション」 を選択します。 プロジェクト名などを任意に指定して [OK] をクリックします。

図 1. Windows アプリケーションを新規に作成する

これで、ベースとなる Windows フォームが出来ましたのでここで、DataGridView コントロールを実装します。ツールから DataGridView コントロールをフォームにドラッグ & ドロップします。フォームに配置されたら、右上のスマートタグをクリックして、「親コンテナにドッキングする」 メニューを選択します。DataGridView がフォーム全体に広がります。

図 2. DataGridView コントロールを配置する

次に DataGridView コントロールの列を設定します。DataGridView を右クリックして 「列の編集」 を選択します。今回はここから DataGridView のカラムを設定します。列の編集ダイアログが表示されたら、追加ボタンを押してカラムを追加します。

図 3. 列の作成

列を 4 つ以下のような設定で追加します。

カラム 名前 ヘッダー テキスト
Column1 TextBox DataGridViewTextBoxColumn SiteName
Column2 Combo DataGridViewComboBoxColumn Target
Column3 Check DataGridViewCheckBoxColumn Japan
Column4 Link DataGridViewLinkColumn URL

 

また、Combo カラムには ComboBox のリストを追加します。左側の 「選択された列」 から 「Combo」 を選択し、右側の 「非バインド列のプロパティ」 から Items プロパティを選択します。コレクションの右側の 「…」 を選択し、文字列コレクション エディタを表示します。ここに Personal, Developer, ITPro, Other を 1 行ずつ入力し、「OK」 を押します。

図 4. カラムへのリストの追加

ベースとなるコントロールの配置、設定が完了したので機能を実装します。「表示」 メニューから 「コード」 を選択してコード画面を表示します。コード画面が表示されたらの上のドロップダウンから New メソッドを選択して、コンストラクタを作成します。

図 4b. コンストラクタの作成

ここにまずはテスト データ実装用のコードを追加します。

 

Visual Basic
Public Class Form1
    Public Sub New()
        ' この呼び出しは、Windows フォームデザイナで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        DataGridView1.Rows.Add("msn", "Personal", True, "http://www.msn.co.jp")
        DataGridView1.Rows.Add("Microsoft", "Personal", False, "http://www.microsoft.com/")
        DataGridView1.Rows.Add( _
        "MSDN Japan", "Developer", True, "http://www.microsoft.com/japan/msdn/")
    End Sub End Class
 

次に行の色設定をするためのコードを実装します。上記のコードに続けて以下のコードを実装します。スタイルのための DataGridViewCellStyle オブジェクトを作成して、それを DataGridView の各種 CellStyle プロパティに設定します

 

Visual Basic
Public Class Form1
    Public Sub New()
        ' この呼び出しは、Windows フォームデザイナで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        DataGridView1.Rows.Add("msn", "Personal", True, "http://www.msn.co.jp")
        DataGridView1.Rows.Add("Microsoft", "Personal", False, "http://www.microsoft.com/")
        DataGridView1.Rows.Add( _
        "MSDN Japan", "Developer", True, "http://www.microsoft.com/japan/msdn/")

        Dim tcs As New DataGridViewCellStyle
        tcs.BackColor = Color.Yellow
        Me.DataGridView1.AlternatingRowsDefaultCellStyle = tcs
    End Sub
End Class
 

最後に、DataGridView にその他の設定をするためのプロパティを実装します。上記コードに続けて以下のコードを設定します。ここでは、列幅を内容に合わせて自動的に調整する AutoSizeColumnMode、行選択を可能にする DataGridViewSelectionMode、列の分割線の幅調整をする DividerWidth、そして列の入れ替えを可能にする AllowUserToOrderColumns プロパティを設定しています。

 

Visual Basic
Public Class Form1
    Public Sub New()
        ' この呼び出しは、Windows フォームデザイナで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。
        DataGridView1.Rows.Add("msn", "Personal", True, "http://www.msn.co.jp")
        DataGridView1.Rows.Add("Microsoft", "Personal", False, "http://www.microsoft.com/")
        DataGridView1.Rows.Add( _
        "MSDN Japan", "Developer", True, "http://www.microsoft.com/japan/msdn/")

        Dim tcs As New DataGridViewCellStyle
        tcs.BackColor = Color.Yellow
        Me.DataGridView1.AlternatingRowsDefaultCellStyle = tcs

        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        DataGridView1.Columns(0).DividerWidth = 2
        DataGridView1.AllowUserToOrderColumns = True

    End Sub
End Class
 

以上で全ての実装は完了です。

動作と解説

では、実行してみます。 [Ctrl + F5] キーを押すか、[デバッグ] メニューの [デバッグなしで開始] をクリックします。サンプル データを読み込んだ DataGridView の WinForm アプリケーションが表示されます。まずは設定どおりにコントロール列が作成されて、それにあわせてデータが追加できていることがわかります。

図 5. DataGridView アプリケーションの実行

では、機能を確認してみましょう。スタイル設定によって 1 行ごとに色が変わっています。たとえば一番下の行の SiteName 欄に適当な文字を入力して 「Enter キー」 を押してみると行が追加され、そのたびに色のついた行が交互に現れることがわかります。

表示関連としては 1 列目と 2 列目の間の線の幅が少し太くなっています。また、設定によって列幅は内容に応じて自動的に長さが変わります。左側のグレーのエリアをクリックするとその行全体が選択可能です。そして列をユーザーが自由に移動させることが出来ます。

図 6. DataGridView 実行時カスタマイズ機能

おわりに

このように DataGridView コントロールはこれまでの Grid コントロールに比べて格段に表現能力が拡張されました。また今までは作ることが難しかったコントロール列などを容易に作成することが出来ます。ここで紹介 した DataGridView コントロールの機能は全ての機能のうちのほんの一部です。ぜひ一度この DataGridView を使ってアプリケーションを作って見てください。


Code Recipe .NET Framework デベロッパー センター

ページのトップへ