如何在 C++/CLR 中向 WPF 按钮添加单击处理程序?

发布于 2024-08-09 15:12:47 字数 664 浏览 5 评论 0原文

在 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) : 错误 C3867: 'MyListBoxItem::ButtonOnClick': 函数调用缺少参数列表;使用 '&MyListBoxItem::ButtonOnClick' 创建指向成员的指针

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

C++/CLI 中的 (*) 相当于什么?

谢谢 马克

In C#, I can do (*):

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

But in C++/CLI I can't do:

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

I get a compiler error complaing about the += ButtonOnClick:
2>.\blub.cpp(108) : error C3867: 'MyListBoxItem::ButtonOnClick': function call missing argument list; use '&MyListBoxItem::ButtonOnClick' to create a pointer to member

(The tip the compiler gives me doesn't work because it isn't a static method.)

What is the equivalent of (*) in C++/CLI ?

Thx
Marc

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷乱花海 2024-08-16 15:12:48

尝试
<罢工>

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

> <罢工>

b->Click += gcnew System::EventHandler(this, &ButtonOnClick);

try

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

b->Click += gcnew System::EventHandler(this, &ButtonOnClick);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文