25

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

4

2 回答 2

40

如果您愿意,您可以显示一个新事件并将任何订阅直接传递给控件:

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

    public event EventHandler SaveButtonClick
    {
        add { saveButton.Click += value; }
        remove { saveButton.Click -= value; }
    }
}
于 2009-06-03T05:28:39.750 回答
1

将整个 TextBox 公开为用户控件中的公共属性,并以您希望的方式订阅它的事件。
例子:

class myUserControl: UserControl { 
private TextBox _myText;
public TextBox MyText { get {return _myText; } }

}

完成此操作后,您可以订阅它的任何事件,如下所示:

theUserControl.MyText.WhatEverEvent += ... 

希望这可以帮助!

于 2009-06-03T05:24:36.790 回答