gpt4 book ai didi

c++ - 我可以在 C++/UWP 中使 EventHandlers 成为非静态成员函数吗?

转载 作者:行者123 更新时间:2023-11-28 04:35:44 24 4
gpt4 key购买 nike

也许这个问题有点愚蠢,但我现在被卡住了。

我目前正在研究一个带有 TextBox 和 TextBlock 的类。当您在 TextBox 中键入内容时,TextChangedEventHandler 应该使用相同的文本更新 TextBlock。但是因为 EventHandler 函数是静态的,所以我无法获取 TextBlock,因为它当然是非静态的。有没有办法正确地做到这一点,或者可以使 EventHandlers 非静态?

这是我的类(class):

class Test {
TextBlock^ tbl;
TextBox^ tb;
public:
Test(StackPanel^ parent) {
tbl = ref new TextBlock;
tb = ref new TextBox;
tb += ref new Windows::UI::Xaml::Controls::TextChangedEventHandler(&tb_TextChanged);
parent->Children->Append(tbl);
parent->Children->Append(tb);
}
static void tb_TextChanged(Platform::Object ^sender, Windows::UI::Xaml::Controls::TextChangedEventArgs ^e) {
tbl->Text = static_cast<TextBox^>(sender)->Text; //this doesnt work unfortunately!
}
};

`

最佳答案

好的,首先感谢 Hans Passant 和 Nico Zhu 的帮助。我无法使用:

tb->TextChanged += ref new Windows::UI::Xaml::Controls::TextChangedEventHandler(&tb_TextChanged);

因为我的类(class)是标准的 C++ 类(class)。我必须先将其声明为 C++/CX,例如:

ref class Test sealed {
...
};

但是有了这个定义,我现在可以将“this”传递给函数了。<3

关于c++ - 我可以在 C++/UWP 中使 EventHandlers 成为非静态成员函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51508158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com