以下是组件代码: using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel;
namespace NSEventStudy { public delegate void TwoEventHandle(int flag);
public class EventStudy : System.Web.UI.WebControls.WebControl { ///////////////第一种定义事件的方法//////////////////// public event TwoEventHandle TwoEvent;
public void Execute(int flag) { TwoEvent(flag); }
////////////////第二种定义事件的方法//////////////////// private static object _Process = new object(); public event TwoEventHandle ThreeEvent { add { Events.AddHandler(_Process,value); } remove { Events.RemoveHandler(_Process,value); } }
public void InnerExecute(int flag) { TwoEventHandle handle = (TwoEventHandle)Events[_Process]; if(handle != null) { handle(flag); } else { this.RaiseBubbleEvent(this,null); } }
protected override void Render(HtmlTextWriter writer) { base.Render (writer); writer.WriteLine("我爱你,中国"); }
} }
测试程序: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
namespace TestEvent { /// <summary> /// WebForm1 的摘要说明。 /// </summary> public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.Button Button1; protected NSEventStudy.EventStudy EventStudy1; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 }
#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.EventStudy1.ThreeEvent += new NSEventStudy.TwoEventHandle(this.EventStudy1_ThreeEvent); this.EventStudy1.TwoEvent += new NSEventStudy.TwoEventHandle(this.EventStudy1_TwoEvent); this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Load += new System.EventHandler(this.Page_Load);
} #endregion
private void EventStudy1_TwoEvent(int flag) { this.Response.Write("<script>javascript:alert(''''TwoEvent事件触发'''')</script>"); }
private void EventStudy1_ThreeEvent(int flag) { this.Response.Write("<script>javascript:alert(''''ThreeEvent事件触发'''')</script>"); }
private void Button1_Click(object sender, System.EventArgs e) { this.EventStudy1.Execute(6); this.EventStudy1.InnerExecute(10); } } }
[C语言系列]NET 中C#的switch语句的语法 [系统软件]托拽Explore中的文件到VB.net的窗口 [系统软件]Boost库在XP+Visual C++.net中的安装 [常用软件]新配色面板:Paint.Net3.0RC1官方下载 [常用软件]用内建的“Net Meeting”聊天 [VB.NET程序]Henry的VB.NET之旅(三)—共享成员 [VB.NET程序]Henry的VB.NET之旅(二)—构造与析构 [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体 [VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET) [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
|