【发布时间】:2011-11-16 21:48:37
【问题描述】:
我有一个带有 3 个按钮的 CompositeControl,我不想让这些按钮成为我的 CompositeControl 的公共成员。但我也想单独公开他们的 Click 事件,以便该控件的用户可以订阅它们。
如果不在我的控件中复制相同的事件并分别引发每个按钮的 Click 事件,我不确定如何做到这一点。
【问题讨论】:
标签: c# .net winforms events custom-controls
我有一个带有 3 个按钮的 CompositeControl,我不想让这些按钮成为我的 CompositeControl 的公共成员。但我也想单独公开他们的 Click 事件,以便该控件的用户可以订阅它们。
如果不在我的控件中复制相同的事件并分别引发每个按钮的 Click 事件,我不确定如何做到这一点。
【问题讨论】:
标签: c# .net winforms events custom-controls
如果不在我的控件中复制相同的事件并分别引发每个按钮的 Click 事件,我不确定如何做到这一点。
这确实是处理这个问题的正确方法。您会想要复制该事件,但要给它一个新的、正确的名称。
通常,这意味着使用与按钮活动相关的名称而不是按钮本身来公开“点击事件”。例如,如果您有一个刷新按钮,我会将事件公开为:
public event EventHandler RefreshRequested;
然后,在内部,您将监听按钮的单击事件并引发刷新请求事件。这也为您提供了稍后更改内部表示的灵活性(例如,如果您想使用按钮以外的其他东西)。
【讨论】: