利用事件委托来实现UserControls之间的交互
2005-09-29 18:08
393 查看
在from1.aspx页上加入2个用户控件,名为test1.ascx和test2.ascx。
在test1.ascx中加入一个文本框TextBox1,在test2.ascx中加入一个按钮btnOK。
在test2.asc.cs中加入下面的代码:
private void btnOK_Click(object sender, System.EventArgs e)
{
OnCancel(new EventArgs());
}
public static event CancelEventHandler Cancel; //注意:声明事件要是静态的。
protected virtual void OnCancel(EventArgs e)
{
if(Cancel!=null)
{
Cancel(this,e);
}
}
public delegate void CancelEventHandler(object sender,EventArgs e); 在test1.ascx.cs中加入下面的代码:
//要调用执行的方法
private void test1_Message(object sender,EventArgs e)
{
this.TextBox1.Text="测试";
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
//将test_Message加入Cancel事件
test2.Cancel+=new CancelEventHandler(test1_Message);
}
#endregion
这样,当单击test2上的btnOK时,就会执行OnCancel调用Cantel事件并执行test1中的test1_Message方法。这只是一个简单的例子,但这种应用很广泛,你可以用在自定义组件的交互,可以调用方法执行更复杂的逻辑。
在test1.ascx中加入一个文本框TextBox1,在test2.ascx中加入一个按钮btnOK。
在test2.asc.cs中加入下面的代码:
private void btnOK_Click(object sender, System.EventArgs e)
{
OnCancel(new EventArgs());
}
public static event CancelEventHandler Cancel; //注意:声明事件要是静态的。
protected virtual void OnCancel(EventArgs e)
{
if(Cancel!=null)
{
Cancel(this,e);
}
}
public delegate void CancelEventHandler(object sender,EventArgs e); 在test1.ascx.cs中加入下面的代码:
//要调用执行的方法
private void test1_Message(object sender,EventArgs e)
{
this.TextBox1.Text="测试";
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
//将test_Message加入Cancel事件
test2.Cancel+=new CancelEventHandler(test1_Message);
}
#endregion
这样,当单击test2上的btnOK时,就会执行OnCancel调用Cantel事件并执行test1中的test1_Message方法。这只是一个简单的例子,但这种应用很广泛,你可以用在自定义组件的交互,可以调用方法执行更复杂的逻辑。
相关文章推荐
- 利用委托事件实现Winform窗体之间的同步刷新
- 利用事件-委托,实现主-子窗体动态显示,不同菜单栏,不同工具栏。(类似SQL Server 2000 企业管理器)
- 关于Unity的委托事件处理脚本之间的交互
- 利用自定义属性实现js点击事件 委托
- 事件委托机制实现GameObject之间的通信
- 利用匿名委托和动态事件注册机制实现应用程序状态监视
- addEventListener(type, fn , true/false)绑定事件第三个参数作用以及利用事件的冒泡,实现事件委托
- 利用事件委托实现用户控件中的行为触发所在页面的处理函数
- WPF利用委托与事件实现VM对View中控件的调用
- 如何用委托与事件实现winfrom窗体之间值传递
- Winform中利用委托实现窗体之间的传值
- C#利用lambda实现委托事件的挂接
- 利用委托的方法实现2个窗体之间的通信的一个小练习
- C#利用lambda实现委托事件的挂接
- Winform中利用委托实现窗体之间的传值
- 【原创源码】(01):利用事件-委托,实现主-子窗体动态显示,不同菜单栏,不同工具栏。(类似SQL Server 2000 企业管理器)
- C#利用lambda实现委托事件的挂接
- Unity中使用委托/事件实现GameObject之间的通信
- 使用委托实现窗体之间的传值--事件订阅实现传值