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

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

Meilleure réponse
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Dernière intervention
10 février 2009
- 30 juin 2006 à 16:09
3
Merci
Salut, il me semble que l'objet ContextMenu a une proprité SourceControl, il faut alors caster le sender ((ContextMenu)sender).SourceControl

Merci t_barbillon 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de t_barbillon
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
- 30 juin 2006 à 16:17
0
Merci
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.