我在使用C ++ / CX制作的Windows 8 metro应用程序中创建按钮控件。我想制作一个按下按钮时触发的事件。但我不知道如何在C ++ / CX中为按钮添加事件。
如果您想在C#中执行此操作,请执行以下操作:
Button btnDoSomething = new Button();
btnDoSomething.MouseClick += new MouseEventHandler(iGotClickedByTheButton);
void iGotClickedByTheButton(object sender, MouseEventArgs e)
{
MessageBox.Show("Hello I got clicked!");
}
所以我的做法是做这样的事情:
Button^ btnDoSomething = ref new Button();
btnDoSomething->Tapped += ref new TappedEventHandler(sender, iGotClickedByTheButton);
void iGotClickedByTheButton(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
MessageDialog^ msgDlg = ref new MessageDialog("Hello I got clicked!");
msgDlg->ShowAsync();
}
然而,这导致了这个地方的错误:
btnDoSomething->Tapped += ref new TappedEventHandler(sender, iGotClickedByTheButton);
显示以下错误:
错误:无效的委托初始化程序 - 函数与 代表类型。
答案 0 :(得分:0)
通过执行以下操作解决了这个问题:
Button^ btnDoSomething = ref new Button();
btnDoSomething->Click += ref new Windows::UI::Xaml::RoutedEventHandler(this, &MyProjectName::MainPage::iGotClickedByTheButton);