検索
連載

第1回 .NETの新しいデータグリッドを大解剖連載:.NETグリッド・コントロール大研究(4/4 ページ)

業務アプリケーション構築において最も頻繁に利用され、開発者が実装に最も労力を要するであろうグリッドを徹底解説。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

■サンプル・コードのまとめ

 最後に、ここまでのコードを実際にコンパイルして実行できるようにしたソース・コードを次に示しておく。

' firstdgv.vb

Imports System
Imports System.Drawing
Imports System.Windows.Forms

Public Class MyForm
    Inherits Form
  Shared Sub Main()
    Application.Run(New MyForm())
  End Sub

  Dim dgv As DataGridView

  Sub New()
    dgv = New DataGridView() ' DGVのインスタンス化
    dgv.Dock = DockStyle.Fill ' フォームの全面に配置

    ' ユーザーによる新しい行の追加禁止
    dgv.AllowUserToAddRows = False

    ' ユーザーによる行の変更、削除の禁止
    dgv.ReadOnly = True

    ' 行の高さの自動調整
    dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells

    Me.Controls.Add(dgv)

    InitializeDGV()
    FillDGV()
  End Sub

  Sub InitializeDGV()
    Dim column1 As New DataGridViewTextBoxColumn
    column1.HeaderText = "1列目の見出し"
    dgv.Columns.Add(column1)

    Dim column2 As New DataGridViewImageColumn
    column2.HeaderText = "2列目の見出し"
    dgv.Columns.Add(column2)
  End Sub

  Sub FillDGV()
    dgv.Rows.Add("Asterisk", SystemIcons.Asterisk)
    dgv.Rows.Add("Error", SystemIcons.Error)
    dgv.Rows.Add("Exclamation", SystemIcons.Exclamation)
    dgv.Rows.Add("Question", SystemIcons.Question)
  End Sub
End Class

DGVコントロールを表示するVBのサンプル・プログラム(firstdgv.vb)
firstdgv.vbのダウンロード

// firstdgv.cs

using System;
using System.Drawing;
using System.Windows.Forms;

public class MyForm : Form {
  static void Main() {
    Application.Run(new MyForm());
  }

  DataGridView dgv;

  public MyForm() {
    dgv = new DataGridView(); // DGVのインスタンス化
    dgv.Dock = DockStyle.Fill; // フォームの全面に配置

    // ユーザーによる新しい行の追加禁止
    dgv.AllowUserToAddRows = false;

    // ユーザーによる行の変更、削除の禁止
    dgv.ReadOnly = true;

    // 行の高さの自動調整
    dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

    this.Controls.Add(dgv);

    InitializeDGV();
    FillDGV();
  }

  void InitializeDGV() {
    DataGridViewTextBoxColumn column1 = new DataGridViewTextBoxColumn();
    column1.HeaderText = "1列目の見出し";
    dgv.Columns.Add(column1);

    DataGridViewImageColumn column2 = new DataGridViewImageColumn();
    column2.HeaderText = "2列目の見出し";
    dgv.Columns.Add(column2);

  }

  void FillDGV() {
    dgv.Rows.Add("Asterisk", SystemIcons.Asterisk);
    dgv.Rows.Add("Error", SystemIcons.Error);
    dgv.Rows.Add("Exclamation", SystemIcons.Exclamation);
    dgv.Rows.Add("Question", SystemIcons.Question);
  }
}

DGVコントロールを表示するC#のサンプル・プログラム(firstdgv.cs)
firstdgv.csのダウンロード

 プログラム内のコメントにもあるように、ここではDGVコントロールを表示専用として利用するために「AllowUserToAddRowsプロパティ」と「ReadOnlyプロパティ」の2つを設定している。デフォルトでは既存のセルの値を編集したり、一番下に表示される空の行から新しい行を追加したりすることができる。DGVコントロールの編集機能についてはいずれ取り上げる予定だ。

 またDGVコントロールには、行の高さや、各列の幅をセルの値に応じて自動的に調節する機能が新しく追加されている。このプログラムでは「AutoSizeRowsModeプロパティ」を設定することにより2列目の画像全体が表示されるようにしているが、このサイズ自動調節機能についても回をあらためて解説する予定だ。


 今回はDGVコントロールの基本構造について解説し、最後に簡単なサンプル・プログラムを作成して実際にグリッドにデータを表示してみた。

 DataGridコントロールを使ったことのある方なら、データを表示するのにデータ・バインド(データ連結)機能が使われていないことに気付かれただろう。DGVコントロールでは、従来のデータ・バインドによるデータの表示に加えて、「非バインド・モード」(今回のサンプル・プログラムはこれ)や、大量のデータを扱うときに利用できる「仮想モード」などが用意されている。次回はこの辺りの解説から始める予定だ。

「連載:.NETグリッド・コントロール大研究」のインデックス

連載:.NETグリッド・コントロール大研究

Copyright© Digital Advantage Corp. All Rights Reserved.

前のページへ |       
ページトップに戻る