使用Alt键弹出ContextMenu,按名称选择包含代码的Item

时间:2013-08-22 09:17:50

标签: vb.net

我想用代码打开ContextMenuStrip并自动设置(推荐)项目 我有两个问题:

Private Sub myfrm_KeyDown(ByVal sender As Object, _
                          ByVal e As System.Windows.Forms.KeyEventArgs) _
                          Handles Me.KeyDown

    If e.KeyCode = Keys.Escape Then Me.Close()

    If e.Alt Then
        e.Handled = True
        Dim pLoc As Point = New Point(Me.Location.X + myDGV.Location.X + 100, _
                                      Me.Location.Y + myDGV.Location.Y + 100)
        myContext.Show(pLoc)
    End If
End Sub

1)如何检测是否仅按下了alt键而没有其他键? 2)如何在弹出此上下文菜单后自动选择(不运行,仅选择)项“ExitToolStripMenuItem”?

1 个答案:

答案 0 :(得分:1)

你的第二个问题有一个简单的答案:

ExitToolStripMenuItem.Select()

StripMenu中的每个项目都有自己的“独立”对象,您可以直接访问它。

你的第一个问题可能会变得有点棘手。 Alt Key是修饰符,预计会与其他键组合使用,为什么不按预期使用?通过依赖事件(没有钩子或类似的东西),你必须设置一个全局(布尔)变量并组合KeyDownKeyUp事件(并将所有代码放在KeyUp事件中) );但它并不简单:每次按Alt键都会存储此信息(因为,如上所述,预计会以这种方式使用:与其他键组合使用),因此确定是否有点难以确定其他键是否与Alt结合使用,具体取决于顺序(如果按下Alt之前是否按下其他键)。我建议你避免所有这些麻烦,只需依靠Alt +其他密钥。