Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 用Alt键弹出上下文菜单,按名称选择带有代码的项目_Vb.net - Fatal编程技术网

Vb.net 用Alt键弹出上下文菜单,按名称选择带有代码的项目

Vb.net 用Alt键弹出上下文菜单,按名称选择带有代码的项目,vb.net,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 The

我想用代码打开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”?

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

ExitToolStripMenuItem.Select()
StripMenu中的每个项目都有自己的“独立”对象,您可以直接访问该对象


你的第一个问题可能会变得有点棘手。
Alt键
是一个修饰符,应该与其他键结合使用,为什么不按预期使用呢?通过依赖事件(没有钩子或类似的东西),您必须设置一个全局(布尔)变量并组合
KeyDown
KeyUp
事件(并将所有代码放入KeyUp事件);但这并不简单:每次按Alt键时,都会存储此信息(因为,正如所说的,它预期将以这种方式使用:与其他键组合按下),因此根据顺序确定是否与Alt键组合按下其他键可能会有点困难(如果ALT之前被按下,而不是其他键)。我建议你避免所有这些麻烦,仅仅依靠ALT+其他键。

你好ValCubas,谢谢帮助。选择正在工作!基于你的其他解释,我必须考虑我该怎么做。谢谢。