2010-02-08 7 views
1

J'ai quelques endroits où un menu serait un meilleur choix que d'afficher une boîte de dialogue et posé une question à l'utilisateur. Le problème est que je ne sais pas comment faire cela.Menu contextuel pour tout contrôle?

Voici le scénario:

Situation actuelle: J'ai une boîte d'image qui fonctionne comme un bouton. L'utilisateur clique sur la boîte et une boîte de dialogue apparaît en leur demandant de sélectionner une catégorie L'utilisateur sélectionne une catégorie et procède à faire ce qu'ils veulent

Situation souhaitée J'ai une zone d'image qui fonctionne comme un bouton. L'utilisateur clique sur la boîte et un menu glisse où leur curseur est la liste des catégories l'utilisateur sélectionne une catégorie et procède à faire ce qu'ils veulent ou l'utilisateur clique sur un autre endroit et le menu disparaît

Comment cela doit être fait? Y a-t-il un moyen intégré de le faire?

+0

Si vous utilisez DevEx, ils disposent d'un contrôle contextuel. – TheSean

Répondre

3

Un ContextMenuStrip est probablement ce que vous voulez: http://msdn.microsoft.com/en-us/library/system.windows.forms.contextmenustrip.aspx

ContextMenuStrip remplace ContextMenu. Vous pouvez associer un ContextMenuStrip à n'importe quel contrôle et un clic droit de la souris affiche automatiquement le menu contextuel. Vous pouvez afficher un ContextMenuStrip par programmation en utilisant la méthode Show. ContextMenuStrip prend en charge les événements d'ouverture et de fermeture annulables pour gérer les scénarios de population dynamique et de clics multiples. ContextMenuStrip prend en charge les images, l'état de vérification de l'élément de menu, le texte, les touches d'accès, les raccourcis et les menus en cascade.

Edit: la partie de caractère gras de la documentation qui parle sur l'utilisation des méthodes Show() pour contrôler programatically lors de l'affichage de la ContextMenuStrip.

+0

puis-je l'obtenir pour être affiché sur un clic gauche? – Malfist

+0

@Malfist: Oui, vous pouvez. –