Comment savoir quel controle a ouvert le ContextMenu ?

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

2 réponses

t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
30 juin 2006 à 16:09
Salut, il me semble que l'objet ContextMenu a une proprité SourceControl, il faut alors caster le sender ((ContextMenu)sender).SourceControl
3
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 2
30 juin 2006 à 16:17
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
0
Rejoignez-nous