0

ここでこの質問をするべきかどうかわかりませんが、とにかく私は尋ねています..

asp ボタン コントロールがあり、そのボタンにデリゲート イベントとクリック イベントの両方を使用していて、どちらが最初に起動するとしますか?

初期化時:

  btn1.Click += delegate{ Save(); };

オンクリックイベント:

   protected void btn1_Click(object sender, EventArgs e)
   {
     Save1();
   }

どちらが最初に実行/発生するか知りたいですか?

4

3 に答える 3

2

btn1_click は、設計時に InitializeComponent() 関数でクリック イベントに自動的にアタッチされます。InitializeComponent(0 関数は、フォームのコンストラクターから呼び出されます。これは、winforms の既定のスニペットです。

InitializeComponent() を呼び出す前に次のステートメントを呼び出すことはできません。そうしないと、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが発生します。この時点まで、コントロールは初期化されていません。

btn1.Click += delegate{ Save(); };

したがって、実行の順序は、最初に btn1_Click イベントが実行され、次にデリゲートに関連付けられた保存関数が実行されます。

于 2012-04-27T09:39:16.883 に答える
1

配属される順番が関係していると思います。通常、btn1_Click と呼ばれるメソッドは、分離コードまたは使用している ASPX ファイルでバインドするまで起動しません。

ASPX で btn1 を btn1_Click メソッドに関連付けていると思いますが、おそらく最初に起動しますが、テストしないのはなぜですか? 両方の行にブレークポイントを置き、どちらが最初にヒットするかを確認しますか?

于 2012-04-26T08:59:29.723 に答える
0

イベントは「実行」されず、イベントが発生するため、実行はbtn1_Click、クライアントによって明示的に行われたクリック時のイベントハンドラーになります。

于 2012-04-26T08:57:59.710 に答える