En C#, je peux le faire (*):Comment ajouter un gestionnaire de clic à un bouton WPF en C++/CLR?
Button b = new Button();
b.Click += ButtonOnClick;
:
void ButtonOnClick(object sender, RoutedEventArgs e)
{
// do something
}
Mais en C++/CLI je ne peux pas faire:
Button^b = gcnew Button();
b->Click += ButtonOnClick;
:
void ButtonOnClick(Object^sender, RoutedEventArgs^e)
{
// do something
}
J'obtiens une erreur du compilateur complaing sur le + = ButtonOnClick: 2>. \ Blub.cpp (108): erreur C3867: 'MyListBoxItem :: ButtonOnClick': appel de fonction manquant liste d'arguments; utiliser « & MyListBoxItem :: ButtonOnClick » pour créer un pointeur vers un membre
(La pointe du compilateur me donne ne fonctionne pas parce qu'il est pas une méthode statique.)
Quel est l'équivalent de (*) en C++/CLI?
Thx Marc
Cela me donne: erreur C2275: 'System :: EventHandler': utilisation illégale de ce type comme une expression . Chercher MAKE_DELEGATE dans msdn me mène à la référence de bibliothèque de MFC. Mais je suppose, je dois créer un (. Net) délégué en quelque sorte - mais je ne sais pas comment. – marc40000
Oh, même si ça ne marche pas, ça m'a indiqué la bonne direction. Cela fonctionne: b-> Cliquez sur + = gcnew RoutedEventHandler (this, & ClassNameWhereTheButtonOnClickMethodIsIn :: ButtonOnClick); Thx :) - Que dois-je marquer comme réponse maintenant? – marc40000