将EventHandler转换为.Net C ++中的MouseEventHandler?

时间:2012-08-31 15:38:14

标签: c++ .net visual-c++ casting event-handling

尝试将EventHandler转换为MouseEventHandler时遇到了一些问题。

System::EventHandler^ method = gcnew System::EventHandler(this, &MainForm::Exit_Action);
if (e->trigger == "onmousedown") {
     c->MouseDown += (MouseEventHandler^)(method); // error

(这是指System :: Windows :: Forms :: Form类)

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:2)

好吧,EventHandler不是MouseEventHandler(它们甚至不在同一个继承层次结构中),所以这不起作用。

为什么不在MouseEventHandler内创建一个新的(好吧, gcnew if?这很便宜:))

(在C#中,你通常使用类似c.MouseDown += Exit_Action;之类的东西创建一个隐式lambda,但我不知道C ++ / CLI中是否有类似的语法。)