0

我需要在单击一次按钮时一起调用几个按钮单击事件。我怎么写?我可以在这里使用多播委托概念吗?

我的场景:

我有一个名为 XYZ 的按钮。单击此按钮后,我为我的应用程序的其他按钮编写的事件处理程序必须被一一调用。

谁能帮我解决这个问题?
我浏览了这个链接: http: //www.codeproject.com/Articles/1077/Delegates-in-managed-C 但它对我不起作用:(

4

1 回答 1

0

如果您仅限于使用 Microsoft Visual C++ __event,则它与托管世界中的非常相似event

首先声明要在方法前面添加事件__event的方法:

__event void OnButtonClicked(...);

然后装饰包含该方法的类:

[event_source(native)]
class MyEventGenerator
{
public:
    __event void OnButtonClicked(const void* pSender, const void* pArguments);
};

要引发事件,您只需调用函数(前置__raise关键字是可选的,但它会在您引发事件的代码中明确)。请注意,您甚至可以从类外部引发事件,因为它是一个简单的方法调用。

您将用于处理事件的类必须装饰有:

[event_receiver(native)]
class CMyEventReceiver
{
public:
    void OnButtonClicked(const void* pSender, const void* pArguments);
};

要附加一个你没有的事件,+=所以你必须在CMyEventReceiver课堂上写这样的东西:

 __hook(&CMyEventGenerator::OnButtonClicked, pEventGenerator,
    &CMyEventReceiver::OnButtonClicked);

请注意,要分离事件处理程序,您必须使用__unhook关键字。

于 2012-06-05T13:37:57.833 回答