Custom context menus
Question / Problem
How do I make a context menu work with the ShellListView or ShellTreeView?
Answer / Solution
Assign the ContextMenuStrip property. It is converted to a ContextMenu instance which is a wrapper of the Windows Shell-API and therefore can be merged with the menu provided by the operating system, including the extensions of third-party applications.
The OnOpening and OnClosing events are mapped to the Popup/Collapse events respectively. Other events provided by ContextMenuStrip are not triggered. A menuitem of course provides the OnClick event.
Furthermore, a property "BackgroundContextMenu" can be assigned for the ListViews of ShellBrowser. It's displayed if the user clicks the right mouse button without having an item selected. A real ToolStripMenu instance can be used here with all events that it supports. It is however recommended to set the RenderMode property to "System" to keep the look & feel consistent with the shell context menu.
Sample code can be found in the JamExplorer example.