C#を勉強しています。
イベントの引数senderとeの意味を教えてください。
それぞれ何のデータが入ってくるんでしょうか?
どういう使い方をするんでしょうか?
本を読んでても書いていることがなくて質問しました。
できるだけ初心者にわかりやすくお願いします。
申し訳ございません。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
sender はイベントを送信したオブジェクトです。
イベントハンドラ自体は Form のメソッドなので、this は Form を指します。そうすると、イベントを送信したのがどのボタンなのかどのテキストボックスなのかわからないので sender で区別します。
e はそのイベントに関わる引数です。クリックイベントなどには無関係なので無視してください。
例えば選択イベントでは、どの項目が選択されたのかを伝えるために使われます。
どのように使われるかはイベントによって様々なので、リファレンスを参照してください。
#追記
例えば電卓を作る時など、同じような働きをするボタンがいくつもある場合、すべてのボタンに一つ一つイベントハンドラを作っていたのでは面倒です。
そんな時には、すべてのボタンに共通したイベントハンドラを作ります。
試しに次のようなメソッドをフォームに追加してください。
C#
1private void button_Click(object sender, EventArgs e) 2{ 3 if (!(sender is Button button)) return; 4 MessageBox.Show(button.Text); 5}
そしてフォームにボタンをいくつか貼り付け、すべてのボタンの Click イベントとしてこのメソッドを割り当ててください。
実行してボタンを押すと、どのボタンを押しても押されたボタンの Text プロパティを表示します。
電卓ではこれを利用し、入力された数字をボタンの Text プロパティから得ることができます。
#追記
上記コードの次の部分
C#
1 if (!(sender is Button button)) return;
これは古いバージョンの場合、コンパイルエラーになるかもしれません。
その場合は次のように置き換えてください。
C#
1 var button = sender as Button; 2 if (button == null) return;
投稿2018/11/04 22:29
編集2018/11/05 00:31総合スコア28673
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
senderはイベントを起こしたオブジェクト、eはそのイベントの付加情報が格納されます。
eの中身に関しての詳細なことを知りたいのであれば、そのイベントのリファレンスを見てください。
System.Windows.Formsなど
投稿2018/11/04 22:34
総合スコア10542
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
たとえば、Buttonのクリックイベントでは、SenderはそのクリックされたButtonが入って呼び出されます
これ、なにがうれしいの?というと、これを使えば、フォームの上に多数のボタンがあったとしても、それらのクリックイベントを1つだけのイベント関数だけで処理できるようになります
C#
1private void Button_Click(object Sender,EventArgs e) 2{ 3 switch((Sender as Button).Name){ 4 case "Button1": 5 // Button1 のクリック処理 6 break; 7 case "Button2": 8 // Button2 のクリック処理 9 break; 10 case "Button3": 11 // Button3 のクリック処理 12 break; 13 ... 14 } 15}
# 実際はTag使って振り分けさせますが
投稿2018/11/04 23:49
総合スコア88163
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。