2012-04-26 8 views
0

最初に実行/昇格されるデリゲートとイベント?

私はASPボタンコントロールを持っている、と私は代理人の両方を使用していますが、最初に起動されますそのボタンのイベントをクリックしたと..私は、私はここか、この質問をする必要があるか分からない。しかしとにかく、私は求めています? initの

:Clickイベントで

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

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

私は/が最初に提起実行されるかを知りたいですか?

答えて

2

btn1_clickは、デザイン時にInitializeComponent()関数のclickイベントで自動的に付加されます。 InitializeComponent()を呼び出す前に次のステートメントを呼び出すことはできません。そうでない場合は、エラー "オブジェクト参照がインスタンスのインスタンスに設定されていません。オブジェクト。」コントロールがintialisedされていないこの時点ティル。

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

だから、実行の順序は、最初のbtn1_Clickイベント、その後、デリゲートを添付保存機能となります。

+0

はい、私は保つことによって確認されていますブレークポイント、クリックイベントが最初に発生し、次に保存機能が削除されます。 ありがとうございます。 – Rocky

0

イベントが実行されていない場合は、イベントはになります。したがって、イベントハンドラの実行はクライアントによって明示的に行われたクリックでbtn1_Clickになります。

1

私はそれが割り当てられている順序と関係があると思います。通常、btn1_Clickというメソッドは、コードビハインドまたは使用しているASPXファイルにバインドするまで起動しません。

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

関連する問題