在c#中的usercontrol中公开并引发子控件的事件

Ani*_*oel 25 c# user-controls childcontrol winforms

你好.我有一个包含文本框的UserControl.我想访问文本框的textchanged事件,但在usercontrol的事件属性中,我没有看到文本框的事件.如何使用C#从Winforms中公开公开的UserControl公开和处理子控件的特定事件.

Mat*_*ton 40

如果您愿意,可以展示新事件并将所有订阅直接传递给控件:

public class UserControl1 : UserControl 
{
    // private Button saveButton;

    public event EventHandler SaveButtonClick
    {
        add { saveButton.Click += value; }
        remove { saveButton.Click -= value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 尽管它很优雅,但这个解决方案有一个主要的缺点:传递给处理程序的`sender`参数将是Button,而不是UserControl ......这使得无法对几个控件实例使用相同的处理程序 (11认同)