.ContextMenu 和 .ContextMenuStrip 之间的区别
Posted
技术标签:
【中文标题】.ContextMenu 和 .ContextMenuStrip 之间的区别【英文标题】:Differences between .ContextMenu and .ContextMenuStrip 【发布时间】:2012-01-16 13:21:37 【问题描述】:Windows 窗体中的.ContextMenu
和.ContextMenuStrip
有什么区别?
我已经知道ContextMenu
是什么,但ContextMenuStrip
与ContextMenu
有何不同?
【问题讨论】:
是的,我先检查了 MSDN,但没有有用的信息。 哎呀为什么投反对票?仅供参考,几乎所有有关 C# 的 *** 问题都可以通过 MSDN、Google、Bing 和 Internet 来回答。这里值得一问,因为开发者可能想先在 *** 中找到答案! 我对每个答案(但不是问题)都投了反对票,因为“ContextMenusStrip 取代了 ContextMenu”是一个大打哈欠。当然可以。问的问题是有什么区别? @RobertHarvey:说得好。我将继续等待更好的答案。我期待类似“如果你想这样做,请使用 ContextMenu;如果你想这样做,请使用 ContextMenuStrip……” 【参考方案1】:http://www.informit.com/articles/article.aspx?p=606224&seqNum=2
您可能想知道为什么微软已经取代了一个有价值和受欢迎的 用新人控制。
ContextMenuStrip
控件很好 想法并使其变得更好。它就像ContextMenu
控件一样工作。 您仍然通过以下方式将ContextMenuStrip
控件附加到另一个用户控件 更改该控件的ContextMenuStrip
属性。然而,微软 大大改进了您可以添加到ContextMenuStrip
继续...
查看 MSDN 上的示例:
http://msdn.microsoft.com/en-us/library/system.windows.forms.contextmenustrip.aspx
ContextMenuStrip
替换ContextMenu
。您可以关联一个ContextMenuStrip
使用任何控件,然后单击鼠标右键 自动显示快捷菜单。你可以显示一个ContextMenuStrip
使用 Show 方法以编程方式。ContextMenuStrip
支持可取消的打开和关闭事件 处理动态人口和多次点击场景。ContextMenuStrip
支持图像、菜单项检查状态、文本、访问 键、快捷键和级联菜单。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.contextmenustrip.aspx
如果
ContextMenu
也已分配给控件,则ContextMenu
优先于ContextMenuStrip
。
【讨论】:
我认为这里的最后一点回答了这个问题。所以基本上,完全远离 ContextMenu 并改用 ContextMenuStrip。【参考方案2】:来自doc
ContextMenuStrip 替换 ContextMenu。
【讨论】:
感谢您指出这一点。 MSDN就是这样一个大海捞针,一个控件可以有很多页,这个回答了问题。【参考方案3】:根据MSDN,ContextMenuStrip 替换了 ContextMenu 类:
虽然 ContextMenuStrip 替换并添加了功能 以前版本的ContextMenu控件,保留了ContextMenu 向后兼容性和未来使用(如果您选择)。
来源:MSDN - ContextMenu
编辑:为什么是 -1?
【讨论】:
那是糟糕的运动,投反对票而不发表评论。一个人将如何从中学习..? -1 是因为您没有以非平凡的方式回答问题。 OP 在问 有什么区别, 我没有看到您的回答有任何价值,重申了这一点。 我不同意你的观点。在撰写本文时,还没有答案。问题是“ContextMenuStrip 与 ContextMenu 有何不同”,我引用了 MSDN 的答案。反正;我想知道在投反对票后我做错了什么。 这就是为什么我从不评论我的反对票。我总是陷入争论。 编辑您的问题只是为了添加“为什么是 -1?”似乎......没有帮助。【参考方案4】:contextMenu - msdn 和 contextMenuStrip - msdn
contextMenu - 表示快捷菜单。尽管 ContextMenuStrip 替换了先前版本的 ContextMenu 控件并为其添加了功能,但仍保留 ContextMenu 以供向后兼容和将来使用(如果您选择)。
ContextMenuStrip 替换了以前版本的 ContextMenu 控件并为其添加了功能
【讨论】:
【参考方案5】:如果您将鼠标悬停在 ContextMenu
上,您会注意到 ContextMenuStrip
替换了它,但 ContextMenu
出于兼容性目的而保留。
【讨论】:
以上是关于.ContextMenu 和 .ContextMenuStrip 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
.ContextMenu 和 .ContextMenuStrip 之间的区别