我需要在单击一次按钮时一起调用几个按钮单击事件。我怎么写?我可以在这里使用多播委托概念吗?
我的场景:
我有一个名为 XYZ 的按钮。单击此按钮后,我为我的应用程序的其他按钮编写的事件处理程序必须被一一调用。
谁能帮我解决这个问题?
我浏览了这个链接: http: //www.codeproject.com/Articles/1077/Delegates-in-managed-C
但它对我不起作用:(
我需要在单击一次按钮时一起调用几个按钮单击事件。我怎么写?我可以在这里使用多播委托概念吗?
我的场景:
我有一个名为 XYZ 的按钮。单击此按钮后,我为我的应用程序的其他按钮编写的事件处理程序必须被一一调用。
谁能帮我解决这个问题?
我浏览了这个链接: http: //www.codeproject.com/Articles/1077/Delegates-in-managed-C
但它对我不起作用:(
如果您仅限于使用 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
关键字。