【VB.NET】複数のイベントを同じイベントハンドラーで処理する方法

訪問して頂きありがとうございます。まさふくろーです。

例えば、フォーム上に複数のボタンがあり、それぞれのClickイベントにコーディングするのではなく、同じ場所にまとめてコーディングしたい場合ってありませんか?

Button1をクリックしたときと、Button2をクリックしたときに同じイベントハンドラーで処理を行いたい!

 

今回は、複数のイベントを同じイベントハンドラーで処理する方法をご紹介します。

1つ目のオブジェクトのイベントハンドラーを作成

1.WindowsフォームデザイナーでButton1を選択します。

2.プロパティウィンドウの「」マークを選択します。

3.プロパティウィンドウの「Click」の赤枠部分をダブルクリックします。

これで、1つ目のオブジェクトのイベントハンドラーが作成されます。

2つ目のオブジェクトのイベントハンドラーを1つ目と関連付ける

1.WindowsフォームデザイナーでButton2を選択します。

2.プロパティウィンドウの「」マークを選択します。

3.プロパティウィンドウの「Click」の「」ボタンをクリックします。

4.プロパティウィンドウの「Click」のリストから、「Button1.Click」を選択します。

これで、1つ目と2つ目のオブジェクトのイベントハンドラーが関連付けられました。

コードエディターで見てみる

1.WindowsフォームデザイナーでButton1かButton2を選択します。

2.右クリックしショートカットメニューを表示⇒「コードの表示」を選択します。

Handlesキーワードに「Button1.Click」「Button2.Click」が出来ています。

これで、「Button1」をクリックしても「Button2」をクリックしても、このイベントが呼び出されます。

Private Subの「Button1_Click」という文字について

この文字は、自由に書き換えても問題ありません。

例えば、ボタンクリックのイベント名として「Button_Click」というようにすれば、ボタンクリックのイベントがまとまっているんだなと予想をつけることができます。

複数のイベントを同じイベントハンドラーにするメリット

  1. 1箇所に集約されるのでわかりやすい
  2. メンテナンスが楽
  3. 同じような処理を何回も書く必要がないため、コーディング量が減る
  4. コーティング量が減ることにより、バグが発生しにくくなる

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら