Bonjour,
J'essaie d'utiliser la classe Timers dans un projet C++/CLR

Donc j'ai créé un projet CLR sous VISUAL STUDIO 2005.
j'ai une winForm1 auto générée (Form.h) et un main.cpp pour la lancer

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
int main(array<System::String ^> ^args)
{
// Activation des effets visuels de Windows XP avant la création de tout contrôle
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false); 
 
	// Créer la fenêtre principale et l'exécuter
	Application::Run(gcnew Form1());
	return 0;
}
Bon, j'arrive à créer des événement , pour manipuler différents objets que j'ajoute sur la winForm.

Maintenant , je veux maitriser l'utilisation des system::timers, enfait plus concrètement , je veux qu'une fonction se lance à chaque laps de temps

J'ai vu cet l'exemple :
http://msdn.microsoft.com/fr-fr/libr...ers.timer.aspx
et qui fonctionne parfaitement sur console. (et d'ailleurs je comprend pas pour quoi ça marche pas sur un projet winForm)

Donc j'ai créé un événement click pour un bouton que j'ai ajouté.
ensuite j'ai inséré ces 3 lignes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
Timers::Timer^ _timer1;
_timer1 = gcnew Timers::Timer(4000);
_timer1->Elapsed += gcnew ElapsedEventHandler(action);
}
après je dois définir la fonction "action", c'est là ou y a les erreurs.
donc j'ai fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
	private :  System::Void action(Object^ source, ElapsedEventArgs^ e ){
				  textBox1->Text="bouton cliqué y a 4 secondes";
			 }
Je build , voici l'erreur que j'obtiens :
1>c:\[...]\Form1.h(210) : error C3867: &'sound::Form1::action'*: liste d'arguments manquante dans l'appel de fonction*; utilisez 'sound::Form1::action' pour créer un pointeur vers membre
1>c:\[...]\Form1.h(210) : error C3350: 'System::Timers::ElapsedEventHandler'*: un constructeur délégué attend 2 argument(s)
Donc j'ai essayé d'ajouter static pour la fonction action comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
private :  static System::Void action(Object^ source, ElapsedEventArgs^ e ){
		  textBox1->Text="bouton cliqué y a 4 secondes";
}
j'obtiens cette erreur :
error C2227: la partie gauche de '->Text' doit pointer vers un type class/struct/union/générique
je pense que j'ai mal définie ma fonction action, alors ma question est comment faire ça proprement.
Merci toute aide est appréciée