C#たんと学ぶ/わりと硬派なソフトウェア開発講座
第2-2回「デスクトップアプリケーション」
C#たんと学ぶ わりと硬派なソフトウェア開発講座(4)
イベント駆動
![]() |
C#たん:
GUIアプリケーション開発は「受け身」です。「ボタンが押されたよ」というようなイベントがやってくるまで何もしません。 |
![]() |
イベント駆動(event-driven)というやつね。イベントをきっかけとして処理が動き始める、イベントがすべての処理を動かす(drive)っていう意味で。
|
最初に(レイアウト時、UI部品を作るときに)、イベントハンドラー(event handler)の登録だけは能動的に行います。イベントハンドラーというのは、イベントが起きた時に呼び出される処理のことです。
UI部品をC#で作るなら、イベントハンドラーの登録は以下のようになります。
var button = new Button { Content = "button" };
button.Click += button_Click;
button_Clickはメソッドの名前で、例えば、メッセージボックスを表示するだけの簡単な処理なら以下のようになるでしょう。このメソッドは、ボタンが押されたときに初めて呼び出されます。
private void button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("ボタンが押されました");
}
同様のイベントハンドラー登録をXAMLで書くなら以下のようになります。
<Button Content="Button" Click="button_Click" />
コマンド
![]() |
さて、最初の言いつけどおり、中核処理の部分をGUIに依存しないように作っておけば、イベントハンドラー内に書くべきことはほとんど何も残らないはずです。
|
「何が起きたか」に相当するイベントに対して、「どういう処理をしたいか」というのをコマンド(command)と呼びます。イベントハンドラーですべきことは、このイベントとコマンドの対応付けだけです。
複数のイベント、例えば、「ボタンをクリック」「メニューをクリック」「ショートカットキーを入力」などに対して同じコマンドを結び付けたい場合もあります。
![]() |
というか、WPFの場合、ボタンやメニューに対して直接コマンドを与える仕組みがフレームワークに組み込まれていて、イベントハンドラーを書く必要自体、ほとんどなかったりします。
具体的な書き方は次節で説明します。 |
この記事は参考になりましたか?
- C#たんと学ぶ/わりと硬派なソフトウェア開発講座連載記事一覧
-
- C#たんと学ぶ/わりと硬派なソフトウェア開発講座 第3回「Webアプリケーション」(前編)
- C#たんと学ぶ わりと硬派なソフトウェア開発講座 番外編「Windows Phone 7」
- C#たんと学ぶ/わりと硬派なソフトウェア開発講座 第2-2回「デスクトップアプリケーション...
- この記事の著者
-
C#たん ソフトウェア開発講座 制作委員会(シーシャープタン)
ソフトウェアに求められる要求の高度化とともに大きくなる開発者への負担を、開発ツールやフレームワーク、時には萌え力を頼りに軽減できないか考えるプロジェクト。C#たんは単なるマスコットかと思いきや、割と毒舌。自分のことは棚に上げて、「萌えればいいってもんじゃないですよ?」が信条。twitter: @cs...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア




