2015-06-26 3 views
1

Я действительно не знаю, что искать, так что я буду просто спросить:Контекстное меню управления Strip с и без Selected сетки

У меня есть контекстное меню полосы, связанный с ListView,

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

Как я могу это достичь?

+0

звучит так, как будто есть * два контекстных меню, но, пожалуйста, объясните, что означает «подсвеченная переменная в представлении списка сетки» или означает – Plutonix

+0

. Я имею в виду выделенный элемент, когда я выбираю и элемент в виде списка, и нажимаю правый клик он должен отображать такие вещи, как файлы папок для копирования, связанные с этим элементом, а когда нет выделенного элемента, в контекстном меню должны отображаться меню для списка, например, столбцы, строки. –

+1

В мыши вниз: 'Если myLV.SelectedItems.Count> 0, тогда ... отображение меню элементов меню Else ... меню дисплея End If'. Обратите внимание, что вопрос изменился в комментарии ... также LV не заботится о том, какая кнопка мыши нажата, чтобы выбрать элемент, и чтобы пользователи отменили выбор предметов, чтобы попасть в другое меню, жестоко – Plutonix

ответ

2

Я сомневаюсь, что пользователь по достоинству оценят ваш подход; вы планируете отображать 2 разных меню из одного и того же действия - щелчок. Может быть неясно, как получить одно меню или другое. Кроме того, непонятно, почему «Настройки» или главное меню когда-либо должны быть скрыты от них.

Вместо 2 меню, почему бы не 1 меню с 2 подменю, чтобы было легко их найти?

Private Sub myLV_MouseUp(sender... 
    If (e.Button = Windows.Forms.MouseButtons.Right) Then 

     lvCMS.Items("ItemMenu").Enabled = (myLV.SelectedItems.Count > 0) 

     ' show (may need if there ARE 2 menus) 
     lvCMS.Show(myLV.PointToScreen(New Point(e.X, e.Y))) 

    End If 
End Sub 

enter image description here

Низковольтные покажет присвоенное меню самостоятельно, но если у вас есть 2, вы можете/должен отображать его вручную, которое показано на рисунке. Используя событие MouseUp, LV уже отреагировал на MouseDn и изменил выбранный элемент. Единственное, что меняется по меню, это то, включен ли ItemMenu или нет.

Щелчок по пустой области отменяет выбор элемента. Запрещая кнопку, чтобы сделать то же самое, что трудно отменить элемент, так как пустая область может получить практически отсутствует:

enter image description here

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

+0

Большое вам спасибо !!!!!!! –

Смежные вопросы