如何在keydown事件中禁止系统继续KeyPress事件?

Equn 2005-03-21 07:30:50
textbox控件中,我需要在keydown事件中检测一个按键,当按一个键时就加入一个文本串,并且取消当前按键。

即快捷键功能。
...全文
217 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy_sea 2005-03-24
  • 打赏
  • 举报
回复
在text控件中不用那么麻烦吧?...
固执的大叔 2005-03-22
  • 打赏
  • 举报
回复
Option Explicit
Dim s As String
Dim n As Integer

Private Sub Form_Load()
s = ""
n = X 'X为快捷键的ascii码常数
Text1 = ""
Text1.Locked = True
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Asc(Chr(KeyCode)) <> n Then
s = s & Chr(KeyCode)
End If
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = n Then 'n为你的快捷键的ascii码
KeyAscii = 0
Text1.SelText = s 's为你要添加的字符串
Text1.Locked = False
End If
End Sub

代码已经通过测试!!!
lsftest 2005-03-21
  • 打赏
  • 举报
回复
最彻底的方法:
用子类,把文本框的keydown、keyup消息都拦截下来,然后根据拦截下来的数据分析是否触发文本框的keydown事件。。。。
lsftest 2005-03-21
  • 打赏
  • 举报
回复
用子类试试。。。。。。。。。
dongge2000 2005-03-21
  • 打赏
  • 举报
回复
开心海的就行啊!
happy_sea 2005-03-21
  • 打赏
  • 举报
回复
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii =n Then 'n为你的快捷键的ascii码
KeyAscii = 0
Text1.SelText = s 's为你要添加的字符串
End If
End Sub
Equn 2005-03-21
  • 打赏
  • 举报
回复
to 88391788(A P-Designer):
谢谢你的热情,但不是我所需要的。
88391788 2005-03-21
  • 打赏
  • 举报
回复
楼主这是不是你要的
Private Sub Text1_KeyPress(KeyAscii As Integer)
Text1.Text = ""
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
Beep
Text1.Text = "您的输入有误!"
End If
End Sub


具体asc 可查阅相关帮助

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧