2009-08-20 7 views
0

tout le monde HI,événement ouvert ContextMenuStrip ne se déclenche pas après l'événement opeing

J'ai un UserControl avec un ContextMenuStrip attaché.

Je souhaite afficher la base de ContextMenu sur laquelle l'objet a été cliqué sur la surface du contrôle.

Le problème est que, au premier lancement, lorsque je clique avec le bouton droit de la souris sur la surface du contrôle, le menu contextuel MenuMenu n'apparaît pas!

J'ai défini le point d'arrêt à l'intérieur de l'événement contextMenuStrip_opening et de l'événement contextMenuStrip_opened, mais il semble que seul contextMenuStrip_opening soit déclenché.

Que s'est-il passé?

Dans quelle situation n'apparaît pas contextMenuStrip?

Aidez-nous s'il vous plaît.

Répondre

0

Si le symptôme est que le ContextMenuString ne montre pas du tout, je serais prêt à parier que votre code attribue true à la propriété e.Cancel dans le gestionnaire d'événements Opening.

Si le menu s'affiche, mais que le gestionnaire d'événements Opened n'est pas appelé, je suppose que le gestionnaire d'événements de l'événement Opened n'est pas connecté pour une raison quelconque.

1

Je n'ai pas fait de choses comme marquer e.Cancel = true ou ne pas assigner le contrôle. Si c'était le cas, j'avais combattu en déboguant.

Je ne sais pas pourquoi, mais j'ajoute e.Cancel = false au début du gestionnaire d'événements ContextMenuStrip_Opening alors ça marche bien.

+0

Wow, je n'y ai pas cru au début, mais si vous réglez e. Annuler à false ça marche, ça m'a dérangé pendant des jours. – jamier

1

J'ai eu un problème avec UserControl, mais e.Cancel = faux travail pour moi Ne

J'utilise à côté

private void itemMenu_Opened(object sender, EventArgs e) 
    { 
     this.itemMenu.Focus(); 
    } 
Questions connexes