連載:Windowsフォーム開発入門 Windowsフォーム初めの一歩 初音 玲2010/05/18 |
|
|
■イベント駆動の考え方を身に付ける
Windowsフォームのデザインだけならば、プロパティの設定だけで十分だが、エンド・ユーザーがWindowsフォームに対して何か操作を行ったときに、それに対する反応を返すためには、「イベント駆動」(Event Driven)という考え方を身に付けなくてはならない。とはいっても、Visual StudioのIDEがあれば心配はいらない。
[プロパティ]ウィンドウをイベント表示に切り替えると、コントロールに対応したイベントの一覧が表示されるし、そのイベント一覧から適当なイベントを選べば、そのイベントの説明も表示される。具体的には、図11のようになる。
図11 ボタンのClickイベントに対応したイベント・プロシージャの作成 | ||||||
[プロパティ]ウィンドウでイベント・プロシージャを作成しているところ。[プロパティ]ウィンドウの下部には、現在選択されているイベントの説明が表示される。 | ||||||
|
そして、イベントに対するプロシージャ名(=メソッド名)を入力すれば、図12のように、フォーム・デザイナが表示されていた場所にコード・エディタが表示されて、イベント・プロシージャ(=イベント・ハンドラ)のプログラミング画面になる。
図12のコード・エディタ上でリスト1のコードを入力する。
|
|
リスト1 FirstWinAppサンプルのコード例(VB)< |
なおC#の場合は、リスト2のようなコードになる。ただし、VBの場合は「Handles」が明記されてイベント・プロシージャとして自動生成されるが、C#の場合はイベント・プロシージャとしての定義は.designer.csファイル側に自動生成される。そのため、リスト2を打ち込む前に[プロパティ]ウィンドウを使って、以下のイベント・プロシージャ(=メソッド)を事前に記述しておく必要がある。
- ボタンの[Click]イベントに「Save_Button_Click」
- テキストボックスの[Enter]イベントに「Name_TextBox_Enter」
- テキストボックスの[Leave]イベントに「Name_TextBox_Leave」
リスト2を打ち込む前に(VBと異なり)[プロパティ]ウィンドウの[Enter]イベントに「Name_TextBox_Enter」を、[Leave]イベントに「Name_TextBox_Leave」を事前に記述しておく必要がある。
|
|
リスト2 FirstWinAppサンプルのコード例(C#) |
●Save_Button_Clickプロシージャ
[保存]ボタンがクリックされると、Clickイベントが発生する。このClickイベントにより自動的呼び出される(=イベント駆動)プロシージャがSave_Button_Clickプロシージャだ。このプロシージャの中では、MessageBox.Showメソッドを呼び出してメッセージボックスを表示する。
●Name_TextBox_Enterプロシージャ
テキストボックスがフォーカスを得ると、Enterイベントが発生する。このEnterイベントにより自動的に呼び出されるのがName_TextBox_Enterプロシージャだ。このプロシージャの中では、テキストボックスの背景色(=BackColorプロパティ)を「LimeGreen」にする。これは、フォーカスを得ているコントロールを分かりやすくする配慮である。
●Name_TextBox_Leaveプロシージャ
テキストボックスがフォーカスを失うと、Leaveイベントが発生する。このLeaveイベントにより自動的に呼び出されるのがName_TextBox_ Leaveプロシージャだ。このプロシージャの中では、テキストボックスの背景色(=BackColorプロパティ)をデフォルトの色に戻すために、「System.Drawing.SystemColors.Window」というシステム・カラーを指定している。
■プロパティの設定(コードで? [プロパティ]ウィンドウで?)
プロパティの設定は、[プロパティ]ウィンドウとコードのどちらで行うべきだろうか。
固定的なプロパティ値や初期プロパティ値は[プロパティ]ウィンドウで設定し、それ以外の可変的なプロパティ値や実行後に変更すべきプロパティ値はコードで記述するのがよいだろう。
なお、[プロパティ]ウィンドウで指定した内容は、Windowsフォームのファイル(例えば「Form1.vb」)に対応する.Designers.vbファイル(例えば「Form1.Designers.vb」)にプログラム・コードとして保存される。もし何かプロパティの書き方で分からないことがあったときは、[プロパティ]ウィンドウでそのプロパティを(仮で)指定した後に、.Designer.vbファイルの内容を参照して、どのようなコードを書けばよいかを学ぶのがお勧めだ。
■まとめ
Visual Studio 2010を使ってWindowsフォームを作成する手順を、簡単な画面デザインのサンプル作成手順に沿って説明した。Visual StudioのIDEは多機能なので、今回説明した方法以外でもWindowsフォーム・アプリを作成できるかもしれないが、業務アプリの開発経験に基づいて誰もが同じ方法を採れる流れで説明した。
次回以降は今回の内容を踏まえて、Windowsフォームを作成するうえでの知識を積み上げていきたいと思う。
INDEX | ||
[連載]Windowsフォーム開発入門【Visual Studio 2010対応】 | ||
Windowsフォーム初めの一歩 | ||
1.IDEでどのように操作してフォームをデザインしていくのか | ||
2.Windowsフォームの基本的なデザイン | ||
3.イベント駆動の考え方を身に付ける | ||
「Windowsフォーム開発入門」 |
- 第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 -