VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1105|回复: 7

怎么接收键盘事件?

[复制链接]

1

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-12-17 11:30:01 | 显示全部楼层 |阅读模式

在窗体中 选择一对象

按Delete键或Backspace键删除

怎么接收按键事件?

谢谢 !
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-12-18 13:45:01 | 显示全部楼层
keydown事件
if e.KeyCode=keys.delete or e.keycode=keys.Back then
...
end if
回复

使用道具 举报

0

主题

14

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-12-18 22:00:01 | 显示全部楼层
并且要把窗体的KeyPreview属性设置为True
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-20 21:30:01 | 显示全部楼层
可以使用keydown事件,同2楼。如果使用keypass事件必须进行字符转换进行比较,并且只能捕获backspace不能捕获delete。
e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Back)
回复

使用道具 举报

0

主题

11

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-12-20 21:45:01 | 显示全部楼层
keypass事件中:e.KeyChar = ChrW(8)指的是backspace  查一下delete的ascii码是多少,然后同理
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-20 22:00:02 | 显示全部楼层
keydown事件在该窗体有用  如果想监听键盘的话 建议用钩子hook
回复

使用道具 举报

0

主题

11

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-12-20 22:15:01 | 显示全部楼层
del是16

if 是8 or 是16 then
  delete
endif
回复

使用道具 举报

0

主题

11

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-12-20 22:30:01 | 显示全部楼层
对不起,写错了,del是46
其实在keyup里面可以写
    If e.KeyCode = Keys.Delete orelse e.KeyCode = Keys.backspace Then
       deleteobj()
    endif
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表