自定义控件点击事件

递归所有控件并将每个控件的Click()事件连接到同一个处理程序.从那里调用InvokeOnClick().现在单击任何内容将触发主UserControl的Click()事件

public partial class UserControl2 : UserControl
{
 
    public UserControl2()
    {
        InitializeComponent();
        WireAllControls(this);
    }
 
    private void WireAllControls(Control cont)
    {
        foreach (Control ctl in cont.Controls)
        {
            ctl.Click += ctl_Click;
            if (ctl.HasChildren)
            {
                WireAllControls(ctl);
            }
        }
    }
 
    private void ctl_Click(object sender,EventArgs e)
    {
        this.InvokeOnClick(this,EventArgs.Empty); 
    }
 
}

 

posted @ 2021-12-22 09:51  世人皆萌  阅读(170)  评论(0编辑  收藏  举报