对于.net中页面事件,就拿Load来说:
private void Form1_Load(object sender, System.EventArgs e)
{
//.........
}
InitializeComponent 方法中自动生成:
this.Load += new System.EventHandler(this.Form1_Load);
--------------
那么,根据委托和事件的定义。我的问题是
要运行事件应该有以下两句:
1、应该有private event EventHandler this.Load;//需要定义委托。可我没有看到系统在哪里有这个语句
2、需要先调用this.Load(object sender, System.EventArgs e)这个事件,然后才会运行方法Form1_Load()。//也没找到在哪里调用的这个事件。
那么在asp.net或winform页面中的事件怎么个编写和运行过程??以上两句又是怎么实现的?
private void Form1_Load(object sender, System.EventArgs e)
{
//.........
}
InitializeComponent 方法中自动生成:
this.Load += new System.EventHandler(this.Form1_Load);
--------------
那么,根据委托和事件的定义。我的问题是
要运行事件应该有以下两句:
1、应该有private event EventHandler this.Load;//需要定义委托。可我没有看到系统在哪里有这个语句
2、需要先调用this.Load(object sender, System.EventArgs e)这个事件,然后才会运行方法Form1_Load()。//也没找到在哪里调用的这个事件。
那么在asp.net或winform页面中的事件怎么个编写和运行过程??以上两句又是怎么实现的?
解决方案 »
- html页面信息的发送和回传机制,以及asp.net的控件的封装,求大牛解答疑问
- 如何将 Visual Studio 2005 中的默认验证改为“Internet Explorer 6.0”。
- asp.net中我在cs文件中设置textbox1.text的值后,是不是输入就无效了啊?
- web.config中的session配置问题
- 手动管理用户状态的后台VB代码中Me代表什么呢??
- 为什么使用了css后中间的边框线都没有了?
- 为什么Requst.Form.Get("userid")无法获取地址栏中aspx?userid=1000中的userid的值
- 帮帮忙,关于验证控件的问题!!!
- WTS分页三剑侠1.0正式版+项目源代码 下载
- uploadifive上传文件问题
- 一个奇怪的问题,纳闷很久了
- 开发项目的格式
随便改一下,按F5就会跳到那里.
在Control中定义了Load事件。可以反编译看到。
[WebSysDescription("Control_OnLoad")]
public event EventHandler Load
{
add
{
this.Events.AddHandler(EventLoad, value);
}
remove
{
this.Events.RemoveHandler(EventLoad, value);
}
}2>当你的页面展示的时候会触发该事件,从而调用相应函数。
可以参考MSDN中讲到的ASP.Net页面模型。
同时可以参考这里来查看页面类的生命周期。
http://blog.csdn.net/Haoze/archive/2008/04/25/2325574.aspx
右边的是上面控件的生命周期,是大写字母表示的。
在Control中定义了Load事件。可以反编译看到。
[WebSysDescription("Control_OnLoad")]
public event EventHandler Load
{
add
{
this.Events.AddHandler(EventLoad, value);
}
remove
{
this.Events.RemoveHandler(EventLoad, value);
}
}-------------------
请问用的什么反编译软件????
我用的ildasm好像没那么强大。
使用Asp.NET时,新建的aspx页面第一行page指令中包含了一个AutoEventWireup属性,这一属性决定了当前页是否自动关联某些特殊事件。
首先,从浏览器页面触发的事件不能立刻在本地得到处理,而是POST至服务器上,因此,Asp.NET建立了委托(代理)机制。在建立一个事件的同时,建立相应的委托:private void InitializeComponent()
{
this.mybutton.Click += new System.EventHandler(this.Button1_Click);//委托
}private void Button1_Click(object sender, System.EventArgs e)
{
//事件内容
} 委托将事件与该页面显式关联。在AutoEventWireup="false"时,如果没有委托,事件将不执行。 这与早期VB采用的隐式事件挂起截然不同,各有利弊。但,Asp.NET中可以修改AutoEventWireup="true",使页面与某些特殊的事件方法绑定,自动识别这些具有特定名称的事件,而不需要进行委托。这些特定名称包括:Page_Init, Page_Load, Page_DataBind, Page_PreRender和Page_Unload等。比如:private void Page_Load(object sender, System.EventArgs e)
{
// 事件内容
}
PagesSection.AutoEventWireup 属性:
获取或设置一个值,该值指示 ASP.NET 页的事件是否自动连接到事件处理函数。
C#
public bool AutoEventWireup { get; set; }AutoEventWireup 为 true 时,ASP.NET 不要求事件指定事件处理程序(如 Page_Load 或 Page_Init)。这意味着在 Web 窗体页的服务器脚本中不需要 Visual Basic 中的 Handles 关键字。 默认情况下,当在 Visual Studio 中创建 ASP.NET Web 应用程序时,.aspx 页或 .ascx 控件中的 AutoEventWireup 属性值设置为 false,不自动创建事件处理程序。如果主要考虑性能,则不要将 AutoEventWireup 设置为 true。