teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2018/11/05 00:31

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -22,4 +22,20 @@
22
22
 
23
23
  そしてフォームにボタンをいくつか貼り付け、すべてのボタンの Click イベントとしてこのメソッドを割り当ててください。
24
24
  実行してボタンを押すと、どのボタンを押しても押されたボタンの Text プロパティを表示します。
25
- 電卓ではこれを利用し、入力された数字をボタンの Text プロパティから得ることができます。
25
+ 電卓ではこれを利用し、入力された数字をボタンの Text プロパティから得ることができます。
26
+
27
+ #追記
28
+
29
+ 上記コードの次の部分
30
+
31
+ ```C#
32
+ if (!(sender is Button button)) return;
33
+ ```
34
+
35
+ これは古いバージョンの場合、コンパイルエラーになるかもしれません。
36
+ その場合は次のように置き換えてください。
37
+
38
+ ```C#
39
+ var button = sender as Button;
40
+ if (button == null) return;
41
+ ```

1

追記

2018/11/05 00:31

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -3,4 +3,23 @@
3
3
 
4
4
  e はそのイベントに関わる引数です。クリックイベントなどには無関係なので無視してください。
5
5
  例えば選択イベントでは、どの項目が選択されたのかを伝えるために使われます。
6
- どのように使われるかはイベントによって様々なので、リファレンスを参照してください。
6
+ どのように使われるかはイベントによって様々なので、リファレンスを参照してください。
7
+
8
+ #追記
9
+
10
+ 例えば電卓を作る時など、同じような働きをするボタンがいくつもある場合、すべてのボタンに一つ一つイベントハンドラを作っていたのでは面倒です。
11
+ そんな時には、すべてのボタンに共通したイベントハンドラを作ります。
12
+
13
+ 試しに次のようなメソッドをフォームに追加してください。
14
+
15
+ ```C#
16
+ private void button_Click(object sender, EventArgs e)
17
+ {
18
+ if (!(sender is Button button)) return;
19
+ MessageBox.Show(button.Text);
20
+ }
21
+ ```
22
+
23
+ そしてフォームにボタンをいくつか貼り付け、すべてのボタンの Click イベントとしてこのメソッドを割り当ててください。
24
+ 実行してボタンを押すと、どのボタンを押しても押されたボタンの Text プロパティを表示します。
25
+ 電卓ではこれを利用し、入力された数字をボタンの Text プロパティから得ることができます。