SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

C#たんと学ぶ/わりと硬派なソフトウェア開発講座

C#たんと学ぶ/わりと硬派なソフトウェア開発講座
第2-2回「デスクトップアプリケーション」

C#たんと学ぶ わりと硬派なソフトウェア開発講座(4)

  • X ポスト
  • このエントリーをはてなブックマークに追加

イベント駆動

C#たん トーク
C#たん
GUIアプリケーション開発は「受け身」です。「ボタンが押されたよ」というようなイベントがやってくるまで何もしません。
VBたん トーク
イベント駆動(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" />

コマンド

C#たん 閉じ目
さて、最初の言いつけどおり、中核処理の部分をGUIに依存しないように作っておけば、イベントハンドラー内に書くべきことはほとんど何も残らないはずです。

 「何が起きたか」に相当するイベントに対して、「どういう処理をしたいか」というのをコマンド(command)と呼びます。イベントハンドラーですべきことは、このイベントとコマンドの対応付けだけです。

 複数のイベント、例えば、「ボタンをクリック」「メニューをクリック」「ショートカットキーを入力」などに対して同じコマンドを結び付けたい場合もあります。

C#たん 閉じ目2
というか、WPFの場合、ボタンやメニューに対して直接コマンドを与える仕組みがフレームワークに組み込まれていて、イベントハンドラーを書く必要自体、ほとんどなかったりします。
具体的な書き方は次節で説明します。

次のページ
データ更新通知

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
C#たんと学ぶ/わりと硬派なソフトウェア開発講座連載記事一覧

もっと読む

この記事の著者

C#たん ソフトウェア開発講座 制作委員会(シーシャープタン)

ソフトウェアに求められる要求の高度化とともに大きくなる開発者への負担を、開発ツールやフレームワーク、時には萌え力を頼りに軽減できないか考えるプロジェクト。C#たんは単なるマスコットかと思いきや、割と毒舌。自分のことは棚に上げて、「萌えればいいってもんじゃないですよ?」が信条。twitter: @cs...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6019 2011/07/04 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング