1

在 C# 中,我可以执行 (*):

        Button b = new Button();
        b.Click += ButtonOnClick;
    :
    void ButtonOnClick(object sender, RoutedEventArgs e)
    {
        // do something
    }

但在 C++/CLI 中我不能这样做:

    Button ^ b = gcnew Button();
    b->Click += ButtonOnClick;
:
void ButtonOnClick(Object ^ sender, RoutedEventArgs ^ e)
{
    // do something
}

我收到一个编译器错误,抱怨 += ButtonOnClick: 2>.\blub.cpp(108) : error C3867: 'MyListBoxItem::ButtonOnClick': function call missing argument list; 使用 '&MyListBoxItem::ButtonOnClick' 创建指向成员的指针

(编译器给我的提示不起作用,因为它不是静态方法。)

C++/CLI 中 (*) 的等价物是什么?

谢谢马克

4

1 回答 1

1

尝试

 b->Click += MAKE_DELEGATE( System::EventHandler, ButtonOnClick );

b->Click += gcnew System::EventHandler(this, &ButtonOnClick);
于 2009-11-05T15:01:32.500 回答