在 C# 中的用户控件中公开并引发子控件的事件

发布于 2024-07-23 17:00:25 字数 131 浏览 7 评论 0原文

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

Hi. I have a UserControl which contains a textbox. I wanted to access the textchanged event of the textbox but in the event properties of the usercontrol I don't see the events for the textbox. How can I expose and handle particular events of the child controls from the publicly exposed UserControl in Winforms with C#.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请恋爱 2024-07-30 17:00:26

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

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

    public event EventHandler SaveButtonClick
    {
        add { saveButton.Click += value; }
        remove { saveButton.Click -= value; }
    }
}

You can surface a new event and pass any subscriptions straight through to the control, if you like:

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

    public event EventHandler SaveButtonClick
    {
        add { saveButton.Click += value; }
        remove { saveButton.Click -= value; }
    }
}
不回头走下去 2024-07-30 17:00:26

将整个 TextBox 作为用户控件中的公共属性公开,并按照您想要的方式订阅其事件。

示例:

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

}

执行此操作后,您可以订阅其任何事件,如下所示:

theUserControl.MyText.WhatEverEvent += ... 

希望这有帮助!

Expose the entire TextBox as a public property in user control and subscribe to it's events the way you desire.

Example:

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

}

After doing this you can subscribe on any of its events like so:

theUserControl.MyText.WhatEverEvent += ... 

Hope this helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文