c# – 在另一个用户控件中消耗一个用户控件的自定义事件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 在另一个用户控件中消耗一个用户控件的自定义事件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1566字,纯文字阅读大概需要3分钟。
内容图文
在UserControl1中有一个自定义事件,我想在UserControl2中连接.
在UserControl1中,我已将自定义事件声明为:
public event MYDelegate SendMessage;
而我的委托定义在其他类库中:
public delegate string MYDelegate(string message);
我在我的代码中触发SendMessage如下:
SendMessage(txt.Text);
请指导我如何在UserControl2中连接SendMessage()事件.我的想法是做类似下面的例子,但不知道如何在UserControl2中获取/访问UserControl1对象.
请帮我.
UserControl1.SendMessge+=ListnerMetod();
解决方法:
你快到了.您只需将SendMessage附加到UserControl2的ListnerMetod即可.
正如Mark Hall所说,如果没有父页知道,将事件从一个控件发送到另一个控件并不是一个好习惯.
以下是通过父页面触发事件的示例代码.
Default.aspx(父页面)
<%@ Register Src="SenderUserControl.ascx" TagName="SenderUserControl"
TagPrefix="uc1" %>
<%@ Register Src="ReceiverUserControl.ascx" TagName="ReceiverUserControl"
TagPrefix="uc2" %>
<uc1:SenderUserControl ID="SenderUserControl1" runat="server" />
<uc2:ReceiverUserControl ID="ReceiverUserControl1" runat="server" />
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
SenderUserControl1.SendMessage += m => ReceiverUserControl1.ListnerMethod(m);
}
}
SenderUserControl.ascx
public delegate void MessageHandler(string message);
public partial class SenderUserControl : System.Web.UI.UserControl
{
public event MessageHandler SendMessage;
protected void Button1_Click(object sender, EventArgs e)
{
SendMessage("test");
}
}
ReceiverUserControl.ascx
public partial class ReceiverUserControl : System.Web.UI.UserControl
{
public void ListnerMethod(string message)
{
}
}
感谢Mark Hall
内容总结
以上是互联网集市为您收集整理的c# – 在另一个用户控件中消耗一个用户控件的自定义事件?全部内容,希望文章能够帮你解决c# – 在另一个用户控件中消耗一个用户控件的自定义事件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。