60

やその他のページ イベントの場合、これらのパラメータは何に使用されますPage_Loadか?Init(object sender, EventArgs e)

例はより役に立ちます。

4

2 に答える 2

65

EventArgs eは、イベント データを含む e というパラメーターです。詳細については、EventArgs MSDN ページを参照してください。

Object Senderイベントを発生させたコントロール/オブジェクトへの参照を含む Sender というパラメーターです。

イベント引数クラス: http://msdn.microsoft.com/en-us/library/system.eventargs.aspx

例:

protected void btn_Click (object sender, EventArgs e){
   Button btn = sender as Button;
   btn.Text = "clicked!";
}

編集: ボタンがクリックされると、btn_Click イベント ハンドラーが起動されます。「オブジェクト送信者」部分は、クリックされたボタンへの参照になります

于 2013-01-23T12:03:19.630 に答える
37

これら 2 つのパラメーター (またはその変形) は、慣例により、すべてのイベントと共に送信されます。

  • sender: イベントを発生させたオブジェクト
  • eEventArgs多くの場合、 から継承するオブジェクトを含むインスタンスEventArgs。イベントに関する追加情報が含まれており、場合によっては、イベントを処理するコードが何らかの方法でイベントを変更する機能を提供します。

あなたが言及したイベントの場合、どちらのパラメーターも特に役に立ちません。はイベントを発生させる唯一のページであり、イベントに関するこれ以上の情報はありませんEventArgsEmpty

2 つのパラメーターを個別に見て、これらが役立つ例をいくつか示します。

sender

フォームに複数のボタンがあるとします。これらのボタンには、Tagクリックするとどうなるかを説明する を含めることができます。Click同じハンドラーですべてのイベントを処理できますsender

private void HandleButtonClick(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    if(btn.Tag == "Hello")
      MessageBox.Show("Hello")
    else if(btn.Tag == "Goodbye")
       Application.Exit();
    // etc.
}

免責事項 : これは不自然な例です。それをしないでください!

e

一部のイベントはキャンセル可能です。彼らはCancelEventArgsの代わりに送信しますEventArgsCancelこのオブジェクトは、イベント引数に単純なブール プロパティを追加します。このイベントを処理するコードは、イベントをキャンセルできます。

private void HandleCancellableEvent(object sender, CancelEventArgs e)
{
    if(/* some condition*/)
    {
       // Cancel this event
       e.Cancel = true;
    }
}
于 2013-01-23T12:06:29.010 に答える