VB.Net自定义控件中的RightClick菜单

时间:2014-12-20 12:49:02

标签: vb.net custom-controls

正如标题所说:我创建了一个由图片框,复选框,标签等组成的自定义控件。

我需要通过鼠标右键显示菜单,但是只有在我点击背景布局时才会调用该事件,而不是在我点击图片框或复选框时调用。

我知道如何在我右键单击我的自定义控件时显示菜单(无论位于图片框,标签上......),以避免复制/粘贴MouseUp事件我的自定义控件的每个子控件。

2 个答案:

答案 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