2014-12-20 6 views
1

Как видно из названия говорят: создать пользовательский элемент управления, который состоит из PictureBox, флажок, этикетки и т.д ..меню RightClick в VB.Net Custom Control

я нуждающийся, чтобы показать меню с помощью мыши RightClick, но событие было вызвано только тогда, когда я нажимаю на макет backgroud, а не когда я нажимаю на изображение или флажок.

Что мне нужно, чтобы показать меню, когда я RightClick на моем настраиваемом элементе управления, независимо от местоположения (на кадре, ярлыке ...), чтобы избежать копирования/вставки для события MouseUp каждого субконтроля моего пользовательского контроля.

ответ

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