1

.aspx Webフォームのデザインビューでボタン(myButton)をダブルクリックすると、コードビハインドでイベントハンドラーが自動的に生成されます。protected void myButton_Click(object sender, EventArgs e)

正しく理解できれば、そのメソッドをButton.Clickイベントに関連付けるには、次のようなものが必要です。myButton.Click += new EventHandler(this.myButton_Click);

しかし、どこにも見つからないようです。ソリューション全体でCtrl+Fを使用し、mywebform.aspx.designer.csを確認しました。

最初は、.aspxページのAutoEventWireupがtrueに設定されていたためだと思いました。ただし、AutoEventWireupをfalseにした後でも、ボタンは次のコードを実行することでクリックに応答します。protected void myButton_Click(object sender, EventArgs e)

生成されたコードをいじってはいけないことを理解しています。私はそうするつもりはありません。これが内部でどのように機能しているかについてもっと知りたいだけです。

4

1 に答える 1

1

イベントハンドラの割り当ては、実際にはaspマークアップで行われます。 これは、ボタンに宣言的に割り当てることができるさまざまなプロパティへのリンクです

OnClick属性の使用に関する別のMSDNリンクがあります。

ボタンのASPマークアップには、次のプロパティが割り当てられていると思います。

OnClick="myButton_Click"

割り当てに変換される方法については、ページは最初に要求されたときに実行時にコンパイルされます(ASP.NETコンパイルの概要)。

于 2012-08-07T01:52:24.527 に答える