使用和不使用选定网格的上下文菜单条控制

时间:2015-06-26 14:36:54

标签: vb.net listview contextmenustrip

我真的不知道要搜索什么,所以我只会问这个:

我有一个链接到列表视图的上下文菜单条

我需要的是当我右键单击网格列表视图中突出显示的变量时,将显示项目菜单,并且 当我右键单击一个空网格时,将显示网格设置。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

我怀疑用户会欣赏你的方法;您计划在同一操作中显示2个不同的菜单 - 单击。如何获得一个菜单或另一个菜单可能并不明显。此外,还不清楚为什么"设置"或主菜单需要隐藏起来。

为什么不是2个菜单,而不是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

LV将自行显示指定的菜单,但如果您有2,则可能需要/需要手动显示它,如图所示。通过使用MouseUp事件,LV已对MouseDn作出反应并更改了所选项目。菜单方面唯一不同的是ItemMenu是否启用。

单击空白区域取消选择一个项目。除非按钮执行相同操作,否则很难取消选择项目,因为空白区域几乎不存在:

enter image description here

只有橙色区域为空网格,再添加一个项目以填充底部并导致滚动条没有。这就是为什么单独的菜单和特殊条件可能不是一个好主意的部分原因。