特集
.NET Framework 2.0のWindowsフォーム新機能(後編)

新グリッド・コントロールの豊富な機能と高い表現力

えムナウ(児玉宏之)
Microsoft MVP 2005 - Visual C#)
2005/09/10
Page1 Page2 Page3

 前編では、.NET Framework 2.0とVisual Studio 2005(以降、両者をまとめて「.NET 2.0」と略記)で追加された新しいWindowsフォーム・アプリケーション用のコントロールについての概要を解説した。後編である今回は、企業情報システムで最も使用頻度が高く、高機能化が待望されていると思われる「DataGridViewコントロール」を取り上げ、その機能と特徴を説明する。

 なお本稿では、Visual Studio 2005 Team Suite Beta 2を利用しているが、Visual Studio 2005 Professional Edition Beta 2でもまったく同じである。(使用する言語はC#)。また本稿の内容を試すには、あらかじめSQL Serverをインストールしておく必要がある。

1. ノー・コーディングで実装できる一覧表と明細

 前編のDataGridViewコントロールの概説では、コントロール内部にTextBox、Image、CheckBox、ComboBox、Link、Buttonなどのコントロールを配置でき、またBindingNavigatorコントロールと組み合わせて使用すると、ユーザーがレコード・データを操作するための機能もノン・コーディングで容易に実装できることを説明した。

 本稿では、さらに高度な機能として、明細データと連結したコントロール群を配置した「顧客マスター・メンテナンス画面」を構築してみる。これは顧客情報を新規追加したり、顧客情報をデータベースより検索し、その明細情報を編集したりするためのものだ。このアプリケーションにより、ノー・コーディングでここまでできる威力を実感してほしい。次の画面は、本稿で作成する顧客マスター・メンテナンス画面である。

顧客マスター・メンテナンス画面
.NET 2.0を使えば、このような多機能な顧客マスター・メンテナンス画面を、ノー・コーディングで実装可能だ。
  BindingNavigatorコントロール。レコードのカーソル位置を[先頭]や[末尾]、[前へ]や[次へ]と移動させることができる。また、データの新規入力や削除や更新の保存などもできる。
  検索ツールバー。姓名により検索して、そのレコード位置に移動できる。
  顧客一覧(DataGridViewコントロール)。この顧客一覧で項目を選択することによって、そのレコード位置に移動できる。
  顧客明細(実際には複数のコントロール群だが、便宜上、「詳細コントロール」とまとめて表記)。この顧客明細では、のいずれかの作業によって移動した位置のレコードのデータを、顧客明細の詳細コントロールに表示して、各データを新規に入力したり、修正したりすることができる。

 この画面には、顧客一覧(DataGridViewコントロール)と顧客明細(実際には複数のコントロール群だが、便宜上、詳細コントロールとまとめて表記する)が含まれている。これらが今回解説する主役のコントロールだ。

 それではさっそく、Visual Studio 2005を使って顧客マスター・メンテナンス画面を構築してみよう。

■Visual Studio 2005によるWindowsアプリケーション・プロジェクトの作成

 まず、以下のようにしてVisual Studio 2005(以降、VS 2005)でC#のWindowsアプリケーションのプロジェクトを新規作成する。

VS 2005でのWindowsアプリケーション・プロジェクトの作成
顧客マスター・メンテナンス画面を実装するWindowsアプリケーションのプロジェクトを作成する。この[新しいプロジェクト]ダイアログを表示するには、VS 2005のIDEのメニューバーから[ファイル]−[新規作成]−[プロジェクト]を選択すればよい。
  [プロジェクトの種類]のツリービューから[Visual C#]−[Windows]を選択する。
  [テンプレート]の一覧から[Windows アプリケーション]を選択する。
  [プロジェクト名]のテキストボックスにアプリケーション名(本稿の例では「DataGridViewSample」)を入力する。
  [OK]ボタンをクリックすることで、Windowsアプリケーション(C#)の新規プロジェクトが作成される。

 Windowsアプリケーションのプロジェクトが作成できたら、顧客マスター・メンテナンス画面を実装していくのだが、その前に顧客マスター・メンテナンス画面が使用するデータベースを準備しておこう。

■顧客マスター・メンテナンス画面が使うデータベースの準備

 本稿では、次の表のような「顧客」テーブルと「性別」テーブルを持つデータベース「VsTestDB」を、SQL Server上にあらかじめ作成しておく必要がある。

フィールド名 データ型 概要
ID int 顧客ID(主キー)
ntext 名字
ntext 名前
姓かな ntext 名字(かな)
名かな ntext 名前(かな)
性別 int 「性別」テーブルのID
自宅パソコンメール bit メール・アドレスが自宅パソコンか(1)否か(0)
携帯メール bit メール・アドレスが携帯電話か(1)否か(0)
職場パソコンメール bit メール・アドレスが職場パソコンか(1)否か(0)
その他メール bit メール・アドレスがそのほかの場所か(1)否か(0)
その他メールの説明 ntext そのほかの場所にあるメール・アドレスについての説明
メールアドレス ntext メール・アドレス
誕生日 datetime 誕生日日付
電話番号 ntext 電話番号
VsTestDBデータベースの「顧客」テーブルのフィールド・レイアウト
 
フィールド名 データ型 概要
ID int 性別ID(主キー)
名称 ntext 性別(男/女)
VsTestDBデータベースの「性別」テーブルのフィールド・レイアウト

 このVsTestDBデータベースを作成するためのSQLスクリプトを用意した。これは、以下のリンクからダウンロードできる(なお、このSQLスクリプトは、SQL Serverのクエリ・アナライザから実行できる)。

■データソースとデータセットの作成

 それではまず、いま作成したデータベースをアプリケーションのデータソースとして設定し、そのデータソースからデータを読み取るデータセットを作成しよう。これには、VS 2005のIDEのメニュー・バーから[データ]−[新しいデータ ソースの追加]を選択して、[データ ソース構成ウィザード]ダイアログを開く。

データソース構成ウィザード − [データソースの種類を選択]ページ
この画面はウィザードの最初の[データソースの種類を選択]ページが開かれているところ。[次へ]ボタンをクリックすれば、ウィザードのページを進めていくことができる。

 ウィザードの最初の[データソースの種類を選択]ページでは、[アプリケーションのデータの取得元]の一覧から「データベース」を選択し、[次へ]ボタンをクリックしてページを進める。

 次に表示される[データ接続の選択]ページで、SQL Server上のデータベースへの接続名(=接続文字列)を選択する(本稿の例では、「<コンピュータ名>.vsTestDB.dbo」という接続名を選択したが、この接続名は[新しい接続]ボタンから作成したものである)。

 続く[接続文字列をアプリケーション構成ファイルに保存する]ページでは、デフォルトの名称(具体的には「VsTestDBConnectionString」)のままにして、[次へ]をクリックする。

 その次の[データベース オブジェクトの選択]ページで、「顧客」テーブルと「性別」テーブルにチェックを入れる。[データセット名]はデフォルトのまま(本稿の例では「VsTestDBDataSet」)でよい。

データソース構成ウィザード − データベース オブジェクトの選択
「顧客」テーブルと「性別」テーブルにチェックを入れる。[データセット名]はデフォルトのまま(本稿の例では「VsTestDBDataSet」)でよい。

 最後に[データベース オブジェクトの選択]ページの[完了]ボタンをクリックすると、実際にデータソースにデータセットが作成される。

 それでは、データセットが作成できたので、それを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コントロールの拡張機能と表現力
 


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH