0

我在尝试将 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 类)

有没有办法做到这一点?

4

1 回答 1

2

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

为什么不在里面创建一个新的(嗯, gcnew)?很便宜:)MouseEventHandlerif

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

于 2012-08-31T15:43:00.660 回答