Comment connaitre le controle qui a ouvert le ContextMenuStrip à partir du ToolS [Résolu]

cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention - 17 juil. 2006 à 09:38 - Dernière réponse : cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention
- 17 juil. 2006 à 09:51
Bonjour,

j'ai déjà posé une question similaire ICI.
Mais cette fois, la solution donnée ne fonctionne pas.

Ici, je fais un clic droit sur un controle pour ouvrir un ContextMenuStrip. Dans les items de ce dernier ce trouve un bouton Configurer qui m'ouvre une fenetre de configuration. Cette fenetre doit prendre en parametre le controle initial qui a ouvert le menu pour le configurer.

Je recherche donc une technique pour connaitre ce controle à partir du ToolStripMenuItem.

Quelqu'un aurait-il une solution?

Dans la liste de l'aide intuitive de VS je n'ai rien vu qui puisse me faire remonter au contextMenuStrip afin de pouvoir recupérer le Control à partir de la variable SourceControl.

f.colo
Afficher la suite 

Votre réponse

1 réponse

cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention - 17 juil. 2006 à 09:51
+3
Utile
OK, j'ai trouvé, en fait j'y été mais je n'avais pas regardé plus profondément dans le débuggueur. Comme j'utilise les 'as' ca me donné toujours null lorsque je convertissé le SourceControl en mon UserControl CamContainerUC. En convertissant tout en une ligne, je ne savais pas où ca ne fonctionné pas.

Le problème venu du fait que le SourceControl été un Control de mon UserControl et non l'UserControl en lui même. J'ai donc demandé le Parent pour retrouver mon USerControl.

            ToolStripMenuItem tsmi = sender as ToolStripMenuItem;
            ContextMenuStrip cms = tsmi.GetCurrentParent() as ContextMenuStrip;
            CamContainerUC cam = (cms.SourceControl as PictureBox).Parent as CamContainerUC;
            ConfigForm form = new ConfigForm(cam);

En une ligne ca donne ca:

ConfigForm form = new ConfigForm((((sender as ToolStripMenuItem).GetCurrentParent() as ContextMenuStrip).SourceControl as PictureBox).Parent as CamContainerUC);
           
f.colo
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_fcolo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.