Differences between .ContextMenu and .ContextMenuStrip

C#.NetWinformsMenu

C# 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionthenonhackerView Question on Stackoverflow
Solution 1 - C#punker76View Answer on Stackoverflow
Solution 2 - C#shahkalpeshView Answer on Stackoverflow
Solution 3 - C#RhapsodyView Answer on Stackoverflow
Solution 4 - C#Nikolay GrudininView Answer on Stackoverflow
Solution 5 - C#AlexView Answer on Stackoverflow