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

.NET 2.0で新登場するWindowsコントロール

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

 次世代アプリケーションを開発するための新しい統合開発環境である「Visual Studio 2005」(以降、VS 2005)と、そのアプリーションを実行するための新しいプラットフォームである「.NET Framework 2.0」(ともに正式版の出荷は2005年11月が予定されている)。これらの新しい環境では、Windowsアプリケーションのための強力で柔軟性のある新コントロールが多数追加されており、さらに見やすく使いやすいユーザー・インターフェイスの作成が可能になる。

 一例を挙げれば、現行のVisual Studio .NET 2003と.NET Framework 1.1のWindowsフォーム・コントロールでもWindows XPスタイルのGUIはすでにサポートされているが、新しいVS 2005と.NET Framework 2.0(以降、両者をまとめて「.NET 2.0」と表記)では、これに加えて、Office 2003スタイルの表示が標準でサポートされる。Office 2003スタイルを活用すれば、ユーザーは.NETで実装されたアプリケーションを、日常的に使い慣れたOfficeアプリケーションと同じ感覚で操作できるようになり、ユーザビリティが飛躍的に高まる可能性がある。

 本稿では2回にわたり、.NET 2.0で追加された新しいWindowsフォーム(Windowsアプリケーション)用のコントロールについて解説していく。今回は、それらのコントロール群で主要なものを一通り紹介する。

 最近ではスマート・クライアントが話題となることが多いが、.NET 2.0ではアプリケーションの配布を容易にする「ClickOnce」機能も用意されるため、.NETによるWindowsアプリケーションの需要は今後ますます増えていくものと予想される。そして、Windowsアプリケーションの作成においては、優れたコントロールの存在がどれほど重要かはいうまでもない。

 なお本稿の目的は、新しいコントロールの使用方法を詳細に解説することではなく、.NET 2.0でどのようなコントロールが追加され、またそれらがどのような機能と特徴を持っているのかを知っていただき、次期アプリケーションを開発する際のヒントにしていただくことである。

1. 新しくなったWindowsフォーム用のコントロール群

 .NET 2.0で追加された主なWindowsフォーム・コントロールには次のものがある。

  • DataGridViewコントロール
  • MaskedTextBoxコントロール
  • FlowLayoutPanelコントロール
  • TableLayoutPanelコントロール
  • ToolStrip/MenuStrip/StatusStripコントロール
  • WebBrowserコントロール

 本稿では、実際にこれらのコントロールを配置したWindowsフォームの画面を示しながら、コントロール1つずつについて紹介していく。これらのコントロールの概要について以下の表に簡単にまとめたので、まずはざっと目を通しておいてほしい。

新コントロール 概要説明
DataGridView DataGridViewコントロールは、従来のDataGridコントロールを置き換える新しいコントロールである。いままでのDataGridコントロールでは、そのグリッド内のセルでTextBoxコントロールとCheckBoxコントロールしか使えなかったが、新しいDataGridViewコントロールではTextBox、Image、CheckBox、ComboBox、Link、Buttonなどのコントロールが使える
MaskedTextBox MaskedTextBoxコントロールは、ユーザーのキー入力を制限し、決まった入力のみを受け付けるコントロールである。例えば、“09A”などの文字列で(‘0’は1文字の数字、‘9’は1文字の数字か空白や‘A’は1文字の英文字を意味する)、マスク(Mask)形式を指定して、ユーザーが入力したときに、それ以外のキー入力を受け付けないようにすることができる
FlowLayoutPanel FlowLayoutPanelコントロールは、その内部に配置したコントロールを自動的に左から右、もしくは上から下の順に配置するコントロールである。内部に配置したコントロールは、FlowLayoutPanelコントロール自体の大きさが変化するに従い、配置の順番は保ったまま自動的に再配置される
TableLayoutPanel TableLayoutPanelコントロールは、その内部に配置したコントロールをテーブル状(表形式)に配置するコントロールである。テーブルのRow(行)、Column(列)の大きさはピクセル数で指定したり、%で指定したりできる。内部に配置したコントロールはTableLayoutPanelコントロールの大きさが変化するに従って再配置され、%で指定した場合はその大きさが自動的に調整されて配置される
ToolStrip/MenuStrip/StatusStrip ToolStripコントロールは、上下左右の位置に自由に移動できるOffice 2003形式のツールバーで、そのツールバー上にはメニューやコントロールを配置することができる。また、MenuStripコントロールはOffice 2003形式のメニューバー、StatusStripコントロールはOffice 2003形式のステータスバーだ
WebBrowser WebBrowserコントロールは、Webページを表示できるWindowsコントロール。Windowsアプリケーションの中にWebページで最新更新情報を表示したいときや、手軽にWeb形式のHelpを単ページで表示したいときに便利である
.NET 2.0で追加予定の新Windowsフォーム・コントロール

 上記の表の内容を確認できたら、さっそく各コントロールの実際の実行イメージを見ていこう。

2. DataGridViewコントロール

 次の画面は、DataGridViewコントロールをWindowsフォーム全体に配置し、そのコントロール内部にTextBox、Image、CheckBox、ComboBox、Link、Buttonなどのコントロールを配置したものだ。ComboBox、Image、ButtonなどのコントロールをDataGridViewコントロールに追加できる機能は、多くの開発者が待ち望んでいたもので、掲示板などでの質問も多かった機能である。

各種コントロールが内部に追加されたDataGridViewコントロール
このWindowsフォームには、BindingNavigatorコントロールとDataGridViewコントロールが配置されている。
  DataGridViewコントロールとともに.NET 2.0で新しく追加されたBindingNavigatorコントロール。レコードのカーソル位置を[先頭]や[末尾]、[前へ]や[次へ]と移動させることができる。また、データの削除や更新の保存などもできる。
  DataGridViewコントロール。その内部には、TextBoxコントロール([ID]列と[Text]列)、Imageコントロール([Image]列)、CheckBoxコントロール([Check]列)、ComboBoxコントロール([Combo]列)、Linkコントロール([Link]列)、Buttonコントロール([Button]列)を配置している。

 DataGridViewコントロールでは、そのDataSourceプロパティにDataSetオブジェクト、DataTableオブジェクト、1次元配列などのデータソースを指定することで、それらのデータソースのデータをコントロールに連結(バインド)して、そこに含まれるデータを表示することができる。

 またそのRowsプロパティに直接データを設定することにより、データソースとバインドしないで指定されたデータをそのまま表示することもできる。なお.NET 2.0では、データソースとして新たに.NET 2.0のジェネリック機能を使用した「BindingList」や「BindingSource」などが追加されている。これらについては次回詳しく説明する予定である。

 DataGridViewコントロールでは、その内部に配置したLinkコントロールや、Buttonコントロールをクリックしたことを検出することがずいぶんと楽になっている。従来のDataGridコントロールでは、例えばコントロール内部のテキストボックスへのクリックを検出するには、DataGridコントロールが管理しているDataGridTextBoxColumnオブジェクトのTextBoxプロパティによりTextBoxコントロールを取得して、そのTextBoxコントロールのイベントを使う必要があった。しかし新しいDataGridViewコントロールでは、そのCellContentClickイベントやCellContentDoubleClickイベントによりDataGridViewコントロールから直接クリックを検出できるのだ。

 またDataGridViewコントロールでは、レコード・データの操作もノンコーディングで容易に実装できる。例えば上の画面のように、DataGridViewコントロールの上部や下部にBindingNavigatorコントロール(=レコードを操作するための新コントロール)を貼り付けて一緒に利用するだけで、ユーザーがデータの表示内容を簡単に操作できるようになるのだ。

3. MaskedTextBoxコントロール

 次の画面は、Windowsフォームに4つのMaskedTextBoxコントロールを配置したものだ。上に「郵便番号」と「日付時刻」の入力欄が、下に「電話番号」と「小数点付き数値」の入力欄が配置されている。このコントロールでは、ユーザーはアンダースコア(_)により表示されている部分にのみ入力できる。

さまざまな入力制限を行う4つのMaskedTextBoxコントロール
Windowsフォーム上に配置された4つのMaskedTextBoxコントロールは、順に「郵便番号」「日付時刻」「電話番号」「小数点付き数値」の入力制限を行う。
  郵便番号。「000-0000」(=数字3桁-数字4桁)というマスクが指定されている。
  日付と時間(日本語)。「0000年90月90日 90時90分」(=年は数字4桁、月日時分は数字か空白1桁と数字1桁)というマスクが指定されている。
  携帯電話番号。「000-0000-0000」(=数字3桁-数字4桁-数字4桁)というマスクが指定されている。
  小数点付き数値。「990.00」(=数字か空白2桁と数字1桁.数字2桁)というマスクが指定されている。

 上の画面で配置されている「郵便番号」「日付時刻」「電話番号」などの標準的なマスクは、あらかじめMaskedTextBoxコントロールで用意されているものだ。もちろん、「小数点付き数値」のような独自のマスクを指定することもできる。入力可能な部分はPromptCharプロパティで指定された文字で、上の画面の場合ではPromptCharプロパティ初期値のアンダースコア(_)で表示されている。また入力不可能な文字が入力された場合に、ビープ(Beep)音を鳴らすようにもできる。(次のページに続く)

 

 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