答案补充:看了你的补充,我更一头雾水了……这样吧,你建一个Command1,添上我的代码,运行程序,按Alt+A试试。给你点注释。
==============
代码如下。
==============
Private Sub Command1_Click()
MsgBox "按了" '这里放你的程序
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) '按键事件
If KeyCode = vbKeyA And (Shift And vbAltMask) = vbAltMask Then Command1_Click '判断是否按下按下Alt+A
End Sub
Private Sub Form_Load()
KeyPreview = True
End Sub
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
如何使用vb制作一个自定义组合键快捷键的程序。
作用:在写字板中使F2键具有复制的功能(按下F2=按下Ctrl+c)F3具有粘贴的功能。
可以是对指定的进程有效也可以是全局的。
高手提供下代码,跪等~~~
解析:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer
Dim a
Private Sub Form_Load()
Timer1Interval = 1
Timer1Enabled = False
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
a = Asc(Text1Text)
Timer1Enabled = True
End If
End Sub
Private Sub Timer1_Timer()
If GetAsyncKeyState(a) Then MsgBox "热键调用成功!!", vbOKOnly
End Sub
这是设置热键的以个例子,你可以改一下呀
设置VB窗体中按扭快捷键的 *** 作可以采用下面两种方法来实现:
1、在按扭的Capion
属性设置标题的时候,前面增加
"&K"字符就可以,K代表的是你准备使用的Alt+键盘字符,如“&O退出”,程序运行的时候按下
Alt+O
即执行该按扭的 *** 作了
2、你可以利用该按扭所在的Form
窗体优先权获得键盘 *** 作功能来激发你要完成的按扭 *** 作,此时首先要设置Form
的KeyPreview
属性值为
True,然后在
Form中KeyDown事件中判断你需要的组合键盘值来激发你的按扭事件
Form_KeyDown事件中的各功能键值组合比较全面,如Shift,Alt
及Ctr等,一般都能满足快捷键的组合需求了
Exp:
利用Ctrl+O组合键激发上面所说的按扭键,在Form_KeyDown事件中添加如下代码
Private
Sub
Form_KeyDown(KeyCode
As
Integer,
Shift
As
Integer)
If
Shift
=
2
And
KeyCode
=
79
Then
btnQuit_Click()
End
If
End
Sub
btnQuit_Click()是退出程序按扭事件
最简单的方法是按Ctrl+E打开菜单编辑器,然后设置个菜单项为退出什么的,设置其快捷键为Ctrl+D,勾选掉“可见”属性(如果是“不可见”属性请勾上)。然后运行就可以了。
还有的方法:(代码)
方法①:
Private
Sub
Form_KeyDown(KeyCode
As
Integer,
Shift
As
Integer)
MeKeyPreview
=
True
If
KeyCode
=
vbKeyD
And
Shift
=
2
Then
End
End
Sub
方法②:
Private
Sub
Form_KeyUp(KeyCode
As
Integer,
Shift
As
Integer)
MeKeyPreview
=
True
If
KeyCode
=
vbKeyD
And
Shift
=
2
Then
End
End
Sub
方法③:
Private
Sub
Form_KeyPress(KeyAscii
As
Integer)
If
KeyAscii
=
4
Then
End
End
Sub
方法①②③的灵敏度不一样,③里面的KeyAscii=4是Ctrl+D的Ascii值,是测试出来的。
至于Ascii值测试代码,只要将方法③的语句换为MsgBox
KeyAscii就行了
Hello,绔星,给你我的codes:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form_Load()
Timer1Enabled = True
Timer1Interval = 100
End Sub
Private Sub Timer1_Timer()
'Alt + A
If GetAsyncKeyState(vbKeyMenu) And GetAsyncKeyState(vbKeyA) Then
Call Command1_Click
End If
'Alt + Z
If GetAsyncKeyState(vbKeyMenu) And GetAsyncKeyState(vbKeyZ) Then
'Call Command2_Click
MsgBox "2"
End If
'Alt + Q
If GetAsyncKeyState(vbKeyMenu) And GetAsyncKeyState(vbKeyQ) Then
'Call Command3_Click
MsgBox "3"
End If
End Sub
以上就是关于vb中自己设定快捷键来执行某段代码全部的内容,包括:vb中自己设定快捷键来执行某段代码、vb 自定义组合键快捷键、vb 按钮快捷键怎么设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)