如何在Composite Winforms控件中向外部公开/冒泡事件?

时间:2011-11-16 21:48:37

标签: c# .net winforms events custom-controls

我有一个带有3个按钮的CompositeControl,我不希望这些按钮成为CompositeControl的公共成员。但我也希望单独公开他们的Click事件,以便该控件的用户可以订阅它们。

我不知道如何在不重复控制中的相同事件并单独提升每个按钮的Click事件的情况下执行此操作。

1 个答案:

答案 0 :(得分:2)

  

我不知道如何在不重复控制中的相同事件并单独提升每个按钮的Click事件的情况下执行此操作。

这是处理此问题的正确方法。您需要复制该事件,但要为其指定一个新的正确名称。

通常,这意味着使用与按钮活动相关的名称而不是按钮本身公开“点击事件”。例如,如果您有一个刷新按钮,我会将事件公开为:

public event EventHandler RefreshRequested;

然后,在内部,您将听取按钮的单击事件并引发刷新请求的事件。这也为您提供了更改内部表示的灵活性(例如,如果您想使用除按钮之外的其他内容)。