Comment savoir quel controle a ouvert le ContextMenu ? [Résolu]

cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention - 30 juin 2006 à 15:55 - Dernière réponse : cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention
- 30 juin 2006 à 16:17
Bonjour,

Dans mon programme, je crée à la volée plusieurs UserControl sur lesquels j'ajoute le meme ContextMenu.
J'ai intercepté l'evenement Opening du contextMenu pour, au lieu d'afficher réellement le context menu, afficher une form avec des paramètres de mon UserControl.

Malheureusement, le sender de la fonction Opening est le contextMenu et non le controle sur lequel on a fait le clic droit.

SAvez vous comment connaitre ce controle?

En fait, mon UserControl contient un activeX qui ne possède pas l'évenement clic, c'est pour celà que j'essais de passer par le contextMenu pour afficher une form.
Existe-t-il une autre solution que de détecter la position de la souris, scruter tous mes controles pour savoir si ils contiennent cette corrdonnée?

            for (int i = 0; i < nbIP; i++)
            {
                for (int j = 0; j < nbIP; j++)
                {
                    VLCCamControler vlcCamControler1 = new FloMultiCamViewer.VLCCamControler();
                    vlcCamControler1.Location = new System.Drawing.Point(j * Width, i * Height);
                    vlcCamControler1.Size = new System.Drawing.Size(Width, Height);
                    vlcCamControler1.ContextMenuStrip = this.contextMenuStrip1;
                    this.panel1.Controls.Add(vlcCamControler1);
                }
            }

        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
            ContextMenuStrip contextMenu = (ContextMenuStrip)sender;
             //Comment savoir ici sur quel controle on a fait un clic droit ????
        }

f.colo
Afficher la suite 

Votre réponse

2 réponses

t_barbillon 341 Messages postés mercredi 8 juin 2005Date d'inscription 10 février 2009 Dernière intervention - 30 juin 2006 à 16:09
+3
Utile
Salut, il me semble que l'objet ContextMenu a une proprité SourceControl, il faut alors caster le sender ((ContextMenu)sender).SourceControl
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de t_barbillon
cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention - 30 juin 2006 à 16:17
0
Utile
Effectivement, ca fonctionne.
j'avais passé toutes les propriétés mais j'ai loupé celle là.
Merci de l'info.

Par contre ca ne résoud pas mon probleme d'affichage d'une form, le contextmenu ne s'affiche pas lorsque l'activeX capture un flux video, donc je dois trouver uen autre solution :(.

Merci encore en tout cas.

f.colo
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.