特集
|
|
|
2. DataGridViewコントロールが持つ強力な拡張機能
DataGridViewコントロールの拡張機能には、例えば周辺のパーツとして、DataGridViewコントロール専用の検索ツールバーを容易に作成できる機能などがある。そこで本稿では、先ほど作成した顧客マスター・メンテナンス画面に、「顧客名による検索ツールバー」を追加してみることにしよう。
■「顧客名による検索ツールバー」の<クエリ>の作成
これにはまず、検索ツールバーで使用する「クエリ」(Query)を作成する必要がある。クエリとはSQL Serverで検索を行うときに使用されるSQL文(SELECT文)のことである。クエリは、具体的には次の画面のようにして作成する。
■「顧客名による検索ツールバー」の作成
クエリが作成できたら、顧客名検索ツールバーを作成しよう。これを実際に行っているのが、次の画面だ。
検索ツールバーの作成 | ||||||||||||
顧客名検索ツールバーを作成しているところ。 | ||||||||||||
|
このようにVS 2005では、DataGridViewコントロールを拡張するための機能を、IDEのデザイナ画面から簡単に追加・実装できる。これにより、開発生産性を落とさずに、高度な機能を実装することが可能だ。
3. DataGridViewコントロールの高度な表現力
@IT会議室などの掲示板で、(従来の)DataGridコントロールに関連する質問の多くの割合を占めていたものは、「セル単位や行単位に色を変更したい」「クリックしたら行選択にしたい」など、表現力に関するものだった。そのような表現力への要求に対して、新しいDataGridViewコントロールは力強く応えてくれる。DataGridViewコントロールでは、表現力を高めるためのクラスやプロパティが大幅に追加されて、多彩な表示とカスタマイズが可能になっているのだ。
最後にこれらのクラスやプロパティについて簡単に紹介しよう。
■DataGridViewCellStyleクラスが持つ表示カスタマイズ機能
DataGridViewCellStyleクラスは、セルの表示形式(以降、セル・スタイル)を制御するクラスだ。これを使うことで、全体のデフォルトのセル・スタイル(DefaultCellStyle)が設定できるだけでなく、以下のような項目の設定も可能になっている。
-
行ヘッダのデフォルト・セル・スタイル(RowHeadersDefaultCellStyle)
-
列ヘッダのデフォルト・セル・スタイル(ColumnHeadersDefaultCellStyle)
-
行単位のデフォルト・セル・スタイル(RowDefaultCellStyle)
-
奇数行単位のデフォルト・セル・スタイル(AlternatingRowDefaultCellStyle)
さらには、以下のような任意セルのデフォルトのセル・スタイルを設定することも可能だ。
-
m行目の行のデフォルト・セル・スタイル(Rows[m].DefaultCellStyle)
-
n列目の列のデフォルト・セル・スタイル(Columns[n].DefaultCellStyle)
-
m行目n列目のセル・スタイル(Rows[m].Cells[n].Style)
次の画面は、実際にセル・スタイルを設定するために、[CellStyle ビルダ]ダイアログを実行しているところだ。
[CellStyle ビルダ]ダイアログ |
CellStyleビルダは、Windowsフォームのデザイン時に、[プロパティ]ウィンドウでDataGridViewCellStyleクラスのインスタンスのプロパティ内容を変更するためのツールである。このクラスは、左右の配置位置(Alignmentプロパティ)、背景色(BackColor)、フォント(Font)、前景色(ForeColor)、表示形式(Format)、Null値の表示形式(NullValue)、余白のサイズ(Padding)、選択時の背景色(SelectionBackColor)や前景色(SelectionForeColor)、ワードラップ(WordWrap)と、多岐にわたった表示のカスタマイズ機能を提供している。 |
■特定の行や列をスクロール範囲から除外して固定表示にする
DataGridViewコントロールでは、特定の行や列を固定表示するようにして、スクロールされる範囲から除外することもできる。また特定の行や列の間にすき間を入れて、区切りとして目立たせることも可能だ。
次の画面は、前述のDataGridViewCellStyleクラスによりセル・スタイルをカスタマイズした例である。
上2行をスクロール範囲から除外して固定表示にした例 |
スクロールバーを4行目までスクロールしたところ。3行目が表示されていないこと、2行目とそれ以降の行との間に区切りとしてすき間があること、行やセルの色が所々カスタマイズされていることが分かる。 |
また次の図は、列を固定した場合の例である。
左1列をスクロール範囲から除外して固定表示にした例 |
1列目とそれ以降の列との間に区切りとしてすき間がある。このため、例えばスクロールバーを右方向にスクロールして、2列目の位置が「その他のメールの説明」の列になるまでスクロールすると、その間にある「性別」の列から「その他メールの説明」の列までが表示されなくなる。また、それぞれの列やセルの色がカスタマイズされていることが分かる。 |
■表現力を増強させるプロパティ群
DataGridViewコントロールのプロパティには、そのほかにも挙動に関して表現力や操作性を豊かにするプロパティが多数存在する。これらについては、以下の一覧表にまとめた。
プロパティ | 概要説明 |
AllowUserToAddRows | 行が追加できるかどうか |
AllowUserToDeleteRows | 行が削除できるかどうか |
AllowUserToOrderColumns | 列の順序が固定か、ユーザーによって変更できるか |
AutoSizeColumnMode | 列のサイズが固定か、自動で決定するか |
AutoSizeRowMode | 行のサイズが固定か、自動で決定するか |
ColumnHeaderHeightSizeMode | 列ヘッダのサイズが、ユーザーによって変更できるか、固定か、自動で決定するか |
RowHeadersWidthSizeMode | 行ヘッダのサイズが、ユーザーによって変更できるか、固定か、自動で決定するか |
EditMode | セルにフォーカスが移動したときに、すぐ入力モードになるか、キー入力で入力モードになるか、[F2]キーで入力モードになるか |
MultiSelect | 行、列、セルを複数選択させるかどうか |
SelectionMode | セル選択時に、行選択や列選択状態や、行ヘッダや列ヘッダ選択状態にする |
DataGridViewコントロールの表現力・操作性を豊かにするためのプロパティ群 |
このようにDataGridViewコントロールでは、従来のDataGridコントロールの弱点の1つであった、表現力が大幅に強化されている。ますますユーザー・フレンドリなグリッド表に生まれ変わったといえるだろう。
■
以上、前編ではWindowsフォームに追加された新しいコントロールを説明し、今回はDataGridViewコントロールに焦点を当て、その多機能さとリッチになった表現力を中心に説明した。この記事が、高度な表現力を持ち、なおかつシンプルで使いやすいWindowsアプリケーションを作成するための手助けになれば幸いである。
INDEX | ||
[特集] | ||
.NET Framework 2.0のWindowsフォーム新機能(前編) | ||
.NET 2.0で新登場するWindowsコントロール | ||
1.新しくなったWindowsフォーム用コントロールについて | ||
2.各コントロールについての概説 | ||
.NET Framework 2.0のWindowsフォーム新機能(後編) | ||
新グリッド・コントロールの豊富な機能と高い表現力 | ||
1..NET 2.0におけるデータソースとデータセットの作成 | ||
2.DataGridViewコントロールと詳細コントロールの作成 | ||
3.DataGridViewコントロールの拡張機能と表現力 | ||
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -