Differences between .ContextMenu and .ContextMenuStrip
C#.NetWinformsMenuC# Problem Overview
What are the differences between .ContextMenu
and .ContextMenuStrip
in Windows Forms?
I already know what a ContextMenu
is, but how is ContextMenuStrip
different from ContextMenu
?
C# Solutions
Solution 1 - C#
http://www.informit.com/articles/article.aspx?p=606224&seqNum=2
> You might wonder why Microsoft has replaced a valuable and popular
> control with a newcomer. The ContextMenuStrip
control takes a good
> idea and makes it better. It works just like the ContextMenu
control.
> You still attach a ContextMenuStrip
control to another user control by
> changing that control’s ContextMenuStrip
property. However, Microsoft
> has substantially improved the features you can add to a
> ContextMenuStrip
cont...
Look at the examples at MSDN:
http://msdn.microsoft.com/en-us/library/system.windows.forms.contextmenustrip.aspx
> ContextMenuStrip
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.
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.contextmenustrip.aspx
> If a ContextMenu
has also been assigned to the control, the
> ContextMenu
takes precedence over the ContextMenuStrip
.
Solution 2 - C#
From the doc
> ContextMenuStrip replaces ContextMenu.
Solution 3 - C#
According to the MSDN, the ContextMenuStrip replaces the ContextMenu class:
> Although ContextMenuStrip replaces and adds functionality to the > ContextMenu control of previous versions, ContextMenu is retained for > both backward compatibility and future use if you choose.
Source: MSDN - ContextMenu
Edit: why the -1?
Solution 4 - C#
contextMenu - msdn and contextMenuStrip - msdn
contextMenu - Represents a shortcut menu. Although ContextMenuStrip replaces and adds functionality to the ContextMenu control of previous versions, ContextMenu is retained for both backward compatibility and future use if you choose.
ContextMenuStrip replaces and adds functionality to the ContextMenu control of previous versions
Solution 5 - C#
If you hoover over ContextMenu
you'll notice that ContextMenuStrip
replaces it but ContextMenu
has been left for compatibility purposes.