Can I use MenuStrip as ContextMenu?

3

女士们先生们,你好!

我有一个 MenuStrip 并且想要一个结构相同的 ContextMenu。 我可以使用我的 MenuStrip 作为 ContextMenu 吗?或者可以从 MenuStrip 快速创建带有数据源的 ContextMenu 吗?

谢谢!

2个回答

6

我不相信您可以将MenuStrip的项目用作ContextMenuStrip。我以前遇到过这种情况,我同意菜单应该是菜单,但它们显然被实现为不同的控件,因为在底层它们需要稍微不同的功能。

然而,您可以使用ContextMenuStrip作为MenuStrip控件的下拉菜单。因此,您可以通过反其道而行之来实现您要查找的行为。设计ContextMenuStrip以任何您想要的方式,然后将其分配给您希望显示该菜单的MenuStrip上的顶级ToolStripMenuItemDropDown属性

或者,您可以走捷径,在设计器中创建两个不同的菜单,但将一个菜单中的项目复制并粘贴到另一个菜单中。这至少节省了您设计两个完全相同菜单的时间。您甚至可以将事件处理程序(例如,对于每个菜单项的Click事件)连接起来,以处理来自两个菜单的项目。例如,在VB.NET中,Handles关键字使此非常简单:

Private Sub Exit_Click(ByVal sender As Object, ByVal e As EventArgs) _
   Handles exitMenuItem.Click, exitContextMenuItem.Click
   Me.Close()
End Sub

这对我很有效。我不建议复制粘贴的方法,因为你将永远需要保持两个菜单同步(一个常见的运行时错误源!) - Scott Smith

2

如果你想要一个简短明了的答案:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接