2012-08-07 76 views
1

当我双击在网页的.aspx窗体的设计视图按钮(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)

我明白,你不应该惹生成的代码,我不打算,我只是想知道更多关于这是如何在引擎盖下工作的。

+0

使用Ctrl-F,你确定你不只是在搜索.cs文件吗?处理程序应该位于Web窗体的.aspx文件中。 – 2012-08-07 01:53:27

回答

1

事件处理程序的分配实际上是在asp标记中完成的。 Here's指向一组可以声明性分配给按钮的不同属性的链接。

这是关于使用OnClick属性的another MSDN link

我猜的按钮你的ASP标记具有以下属性分配:

OnClick="myButton_Click"

至于它是如何被翻译成分配,页面都在运行时在第一时间编译它被要求(ASP.NET Compilation Overview)。

+0

哦,是的,那是真的。难道是委托指派是在运行时生成的,并且它知道该怎么做,因为方法的名称在.aspx和.aspx.cs(myButton_Click)中都是相同的? – CptSupermrkt 2012-08-07 01:55:23

相关问题