尝试将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类)
有没有办法解决这个问题?
答案 0 :(得分:2)
好吧,EventHandler
不是MouseEventHandler
(它们甚至不在同一个继承层次结构中),所以这不起作用。
为什么不在MouseEventHandler
内创建一个新的(好吧, gcnew )if
?这很便宜:))
(在C#中,你通常使用类似c.MouseDown += Exit_Action;
之类的东西创建一个隐式lambda,但我不知道C ++ / CLI中是否有类似的语法。)