首页 > 代码库 > 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; 
 

winform 中调用用户控件中 嵌套用户控件的事件