您好。我有一个包含文本框的UserControl。我想访问文本框的textchanged事件,但在用户控件的事件属性中,我看不到文本框的事件。如何在Winforms中使用C#从公开的用户控件中公开和处理子控件的特定事件。
您好。我有一个包含文本框的UserControl。我想访问文本框的textchanged事件,但在用户控件的事件属性中,我看不到文本框的事件。如何在Winforms中使用C#从公开的用户控件中公开和处理子控件的特定事件。
如果需要,您可以引发一个新事件并将任何订阅直接传递给控件:
public class UserControl1 : UserControl
{
// private Button saveButton;
public event EventHandler SaveButtonClick
{
add { saveButton.Click += value; }
remove { saveButton.Click -= value; }
}
}
在用户控件中将整个文本框公开为公共属性,并按照您所需的方式订阅其事件。
示例:
class myUserControl: UserControl {
private TextBox _myText;
public TextBox MyText { get {return _myText; } }
}
完成此操作后,您可以像这样订阅其任何事件:
theUserControl.MyText.WhatEverEvent += ...
sender
参数将是按钮而不是用户控件... 这使得无法将同一处理程序用于多个控件实例。 - Thomas Levesque