首页 > 代码库 > winform 中调用用户控件中 嵌套用户控件的事件
winform 中调用用户控件中 嵌套用户控件的事件
工作了很久,一直没有很深入的了解C#中的委托和事件。
来到新公司,主要的工作就是使用委托和事件操作数据。一下子不知道该如何下手。各方请教大神,得出下面的方法
1. 在A控件中定义一个事件,B控件触发的时候,调用一下这个事件。然后再在A的父级控件中写方法,+=的方式把方法委托给A的事件就行了
窗体:
private void Form1_Load(object sender, EventArgs e)
{
UC_Content content = new UC_Content();
content.C_Clicked += new Action(content_C_Clicked);
content.Margin = new Padding(40);
this.groupBox1.Controls.Add(content);
}
void content_C_Clicked()
{
MessageBox.Show("C点击了");
}
大控件
private void UC_Content_Load(object sender, EventArgs e)
{
UC_Detail detail = new UC_Detail();
detail.Margin = new Padding(30);
detail.Click += new EventHandler(detail_Click);
this.panel1.Controls.Add(detail);
}
void detail_Click(object sender, EventArgs e)
{
if(C_Clicked!=null)
{
C_Clicked();
}
}
public event Action C_Clicked;
private void Form1_Load(object sender, EventArgs e)
{
UC_Content content = new UC_Content();
content.C_Clicked += new Action(content_C_Clicked);
content.Margin = new Padding(40);
this.groupBox1.Controls.Add(content);
}
void content_C_Clicked()
{
MessageBox.Show("C点击了");
}
大控件
private void UC_Content_Load(object sender, EventArgs e)
{
UC_Detail detail = new UC_Detail();
detail.Margin = new Padding(30);
detail.Click += new EventHandler(detail_Click);
this.panel1.Controls.Add(detail);
}
void detail_Click(object sender, EventArgs e)
{
if(C_Clicked!=null)
{
C_Clicked();
}
}
public event Action C_Clicked;
winform 中调用用户控件中 嵌套用户控件的事件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。