正如标题所说:我创建了一个由图片框,复选框,标签等组成的自定义控件。
我需要通过鼠标右键显示菜单,但是只有在我点击背景布局时才会调用该事件,而不是在我点击图片框或复选框时调用。
我知道如何在我右键单击我的自定义控件时显示菜单(无论位于图片框,标签上......),以避免复制/粘贴MouseUp事件我的自定义控件的每个子控件。
答案 0 :(得分:1)
没有必要重新发明轮子。这已由Control类实现。
创建一个新的ContextMenuStrip并将每个控件的ContextMenuStrip属性(包括自定义控件)设置为此实例。
答案 1 :(得分:0)
如果没有看到您的代码确切知道您正在做什么,您需要确保为所有子控件设置ContextMenuStrip
属性,而不仅仅是您的用户控件本身:
Public Class UserControl
Private _mainMenu As New ContextMenuStrip()
Public Sub New()
InitializeComponent()
_mainMenu.Items.Add("FirstMenuItem")
PictureBox1.ContextMenuStrip = _mainMenu
CheckBox1.ContextMenuStrip = _mainMenu
Me.ContextMenuStrip = _mainMenu
End Sub
End Class