Vb.net 用Alt键弹出上下文菜单,按名称选择带有代码的项目
我想用代码打开ContextMenuStrip并自动设置(推荐)项。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
这里有两个问题:
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,谢谢帮助。选择正在工作!基于你的其他解释,我必须考虑我该怎么做。谢谢。