在VB中如何现实按下Command1后 执行 Command2的click
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VB中如何现实按下Command1后 执行 Command2的click相关的知识,希望对你有一定的参考价值。
对 Command1 执行 click 后 同时 执行Command2的 click
该功能能否实现 该如何编写?
1)最“官方”的方法
Option ExplicitPrivate Sub Command1_Click()
' 利用 Command2.Value = True, 模拟Command2鼠标点击而引发Click事件
' 进而调用Command2 的Click事件处理程序
Command2.Value = True
End Sub
Private Sub Command2_Click()
Beep
End Sub
2)最“直接”的方法
Option ExplicitPrivate Sub Command1_Click()
'直接调用Command2_Click
Command2_Click
End Sub
Private Sub Command2_Click()
Beep
End Sub 参考技术A 你双击一个按钮后,打开的代码就是那个按钮的click事件,如单击Command1就是
public sub Command1_click()
..
end sub
这就是这个按钮的事件,要调用这个方法只需要写上这个方法名就可以了,如Command1_click 参考技术B 完全可以
在Command1的Click事件中加入
Command2_click本回答被提问者和网友采纳
如何在 VB.NET 中检测多个修改按钮和按下的字符
【中文标题】如何在 VB.NET 中检测多个修改按钮和按下的字符【英文标题】:How to detect multiple modifier buttons and character pressed in VB.NET 【发布时间】:2016-01-05 16:28:40 【问题描述】:在一个 VB.NET 项目中(在 VS2013 中工作),当用户按下 CTRL + LEFT SHIFT + M 时,我需要做一些事情。
我得到的最接近的是能够检测到一个修饰键和 M 键。
有this question here in SO,但提供的示例代码的唯一答案是检测字符键和一个或另一个修饰键,而不是两者。
我一直在寻找一段时间,我看到的唯一示例显示只检测到一个修饰键,我不知道如何检测两个修饰键和一个字符键。
这是我目前拥有的代码:
If My.Computer.Keyboard.CtrlKeyDown AndAlso My.Computer.Keyboard.ShiftKeyDown AndAlso (e.KeyCode And Not Keys.Modifiers) = Keys.M Then
HideForm()
End If
看起来在 KeyDown 事件中只检测到一个键,我猜这是有道理的,因为该事件将为每个键单独触发。
那么如何检测三个键都被按下的时间呢?
【问题讨论】:
If e.Control AndAlso e.Shift AndAlso e.KeyCode = Keys.M Then
不,不是,拉尔斯。 :( 在 KeyDown 事件中,它只检测被按下的第一个键。因此,如果我执行 CTRL + SHIFT + M 它只会获得 CRTL(e.Control 对于您的代码是正确的),如果我执行 SHIFT + CTRL + M然后它只是获取 shift 键(e.Shift 为真)。
只是为了澄清:它不可能(有意义地)调试 KeyDown 事件处理程序,因为它总是会在第一次按键时中断
【参考方案1】:
尝试在您正在使用的表单上使用 ProcessCmdKey 覆盖:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean
If keyData = (Keys.Control Or Keys.Shift Or Keys.M) Then
' do something
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
【讨论】:
宾果游戏!做到了。谢谢,拉斯。 我会很感激解释为什么在这里需要覆盖 ProcessCmdKey 并且 KeyDown/PreviewKeyDown 不起作用 @AlexB。 ProcessCmdKey 发生在表单上的任何其他内容之前。不知道为什么 KeyPreview = true 对您不起作用,但 KeyPreview 是 VB6 时代的旧保留。 该死,我想我忘了告诉 @marky 关于设置 KeyPreview=true ;) 感谢您的澄清 我确实将表单的 KeyPreview 属性设置为 True,所以和你们两个一样,我不确定为什么最初建议的解决方案不起作用...以上是关于在VB中如何现实按下Command1后 执行 Command2的click的主要内容,如果未能解决你的问题,请参考以下文章