将窗体的属性KeyPreview设置为True:
成都创新互联是一家专注于成都网站设计、做网站、成都外贸网站建设公司与策划设计,泰州网站建设哪家好?成都创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:泰州等地区。泰州做网站价格咨询:18982081108
Option
Explicit
Private
Sub
Form_KeyPress(KeyAscii
As
Integer)
If
KeyAscii
=
27
Then
'如果按的键是Esc,
End
'那么退出程序
End
If
End
Sub
Private
Sub
Form_Load()
Me.KeyPreview
=
True
End
Sub
主窗体代码调用Me.close不就可以了吗?或者在任意代码处调用Application.Exit()。如果不起作用的话是因为你在窗体关闭的事件中调用了e.Handle=True
'窗体获得焦点才有效,如果无焦点可以使用api函数,自己修改
Option Explicit
Const settime = 1 '这里设置延迟1s
Dim keyup As Boolean, keydown As Boolean
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 And Not keydown Then
keyup = False
keydown = True
delaymessage
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then
keyup = True
keydown = False
End If
End Sub
Function delaymessage()
Dim t, flag As Boolean
t = Timer
Do
If keyup Then Exit Do '未到时间放掉Esc键
If Timer - t = settime Then
flag = True
Exit Do
End If
DoEvents
Loop
If flag Then
Print "时间已到:" settime '可以用msgbox,但由于长安esc后msgbox显示后马上又消失,这里只是一个功能,给你用print做显示
flag = False
End If
End Function
1,建立一个菜单项
2,在菜单编辑器中设置这个菜单项不显示
3,在菜单编辑器中设置这个菜单项的快捷键是ESC.
4,在这个菜单项的代码中,输入结束程序的代码.