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

Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
- - Dernière réponse : cs_fcolo
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
- 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

Meilleure réponse
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

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.