Voila, j'ai un serieux souci.

Dans un Framework en C#.
Je souhaite ajouter dynamiquement un composant dans un panel.
Le composant en question est un composant utilisateur qui n'ai constitué que de labels, boutons et panel (un truc simple).

Dynamiquement je souhaite en insérer plusieurs (un par un) dans un panel.
Et lors du panel.Controls.Add(myComponent) j'ai le message d'erreur suivant qui apparait.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Une exception non gérée du type 'System.ArgumentException' s'est produite dans system.windows.forms.dll
 
Informations supplémentaires : Les contrôles créés sur un thread ne peuvent pas être parents d'un contrôle d'un autre thread.
Je ne comprend pas grand chose à l'erreur.

L'ajout de ce composant se fait apres l'appel d'une fonction CallBack dans un framework C++ qui fait ensuite appel a ma fonction d'ajout de composant, je ne sais pas si pas peut venir de ca.



Le pire est que j'ai déjà réussi a ajouté plusieurs fois ce composant dans un autre panel apres l'appui sur un bouton.

Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
						myComponent = new ControlNoteComponent(this, iControlNoteMidi);
						if( null != myComponent )
						{
							panelPlay.Controls.Add(myComponent);
 
							//positionnement du control
							int width = myComponent.Width;
							myComponent.Location = new Point( (myChannel - 1) * Width ,0);
						}
Petite info supplémentaire:
L'ajout du composant via un bouton ce fait dans un panel qui se trouve dans une tabpage. Et l'ajout du composant par la fonction CallBack se fait sur un autre panel d'une autre tabpage. Est ce que ca peut venir de ca?


Je suis un peu pommé là

Merci