I have a couple places where a menu would be a better choice than display a dialog box and asked the user a question. Problem is I don’t know how to do this.
Here’s the scenario:
Current Situation:
I have a picture box that is functioning like a button.
The user clicks on the box and a dialog box pops up asking them to select a category
User selects a category and proceeds to do what they want
Desired Situation
I have a picture box that is functioning like a button.
The user clicks on the box and a menu slides out where their cursor is listing the categories
the user selects a category and proceeds to do what they want
OR the user clicks somewhere else and the menu goes away
How can this be done? Is there a built-in way to do it?
A
ContextMenuStripis probably what you want: http://msdn.microsoft.com/en-us/library/system.windows.forms.contextmenustrip.aspxContextMenuStrip replaces ContextMenu. You can associate a ContextMenuStrip with any control, and a right mouse click automatically displays the shortcut menu. You can show a ContextMenuStrip programmatically by using the Show method. ContextMenuStrip supports cancelable Opening and Closing events to handle dynamic population and multiple-click scenarios. ContextMenuStrip supports images, menu-item check state, text, access keys, shortcuts, and cascading menus.
Edit: Bolded the part of the documentation that talks about using the
Show()methods to programatically control when theContextMenuStripis displayed.