在运行时动态更改控件的ContextMenuStrip属性?

时间:2018-09-02 19:25:29

标签: vb.net datagridview contextmenustrip

我有一个DataGridView,如果右键单击某个单元格,则要使用一个ContextMenuStrip;如果单击一个单元格标题,则要使用另一个ContextMenuStrip。我不要只想添加或删除“相同” CMS的成员,或使其成为可见或不可见成员。我认为这就像单击鼠标右键更改DataGridView的属性一样容易,但我一定会误会。

Private Sub DgvItems_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgvItems.CellClick
    Dim dgv As DataGridView = DgvItems
    If MouseButtons.Right Then
        Select Case md.HitTestInfo.Type
            Case DataGridViewHitTestType.ColumnHeader
                dgv.ContextMenuStrip = CmsDgvItemsColHdrs
                dgv.ContextMenuStrip.Show()
            Case DataGridViewHitTestType.Cell
                dgv.ContextMenuStrip = CmsDgvItemsRows
                dgv.ContextMenuStrip.Show()
        End Select
    End If
End Sub

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Du。也许如果我第一次做对的事就可以了。

这是正确的代码,无需再次“ dgv.ContextMenuStrip.Show()” ...

Private Sub DgvItems_CellMouseDown(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DgvItems.CellMouseDown
    Dim dgv As DataGridView = DgvItems
    If MouseButtons.Right Then
        Select Case md.HitTestInfo.Type
            Case DataGridViewHitTestType.ColumnHeader
                dgv.ContextMenuStrip = CmsDgvItemsColHdrs
            Case DataGridViewHitTestType.Cell
                dgv.ContextMenuStrip = CmsDgvItemsRows
        End Select
    End If
End Sub