| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1301 人关注过本帖
标题:答案为什么是A a?
只看楼主 加入收藏
dgg实在
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-7-15
结帖率:60%
收藏
 问题点数:0 回复次数:5 
答案为什么是A a?
将窗体的KeyPreview属性设为True,然后编写如下程序:
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
        Print Chr(KeyCode)
    End Sub
    Private Sub Form_KeyPress(KeyAscii As Integer)
        Print Chr(KeyAscii)
    End Sub

运行程序时,按下字母键a,则窗体上显示的是A a

keycode不是不区分大小写的吗?为什么不可以是aa?
搜索更多相关主题的帖子: 区分大小写 运行程序 字母 
2016-10-11 22:52
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
keycode是键盘扫描码,和键盘上的键一一对应,asc码是字符编码,是对键盘扫描码结合转换键后转换得到的一种国际通用编码。
2016-10-12 09:24
dgg实在
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-7-15
收藏
得分:0 
回复 2楼 xzlxzlxzl
不明白
2016-10-12 14:58
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
那我就按我理解的给你普及下“键盘扫描码是怎样形成的?”:
一般键盘有103个键盘,键盘就是一个开关,一般情况下,一个开关有进线和出线两条线路连接,103个开关就需要103*2共206条线路连接,这是不是太多了?为了简化线路,人们使用矩阵电路,判断矩阵电路交叉点是否连接来识别连接的健,比如用一个11*11的矩阵,这样的矩阵有121个交叉点,最多可以安排121个键,只需要22条线路。为了判断到底是那个键被按下,设计了一个行列扫描电路,如果将a键安排在第6行第5列的位置,当a键被按下时,扫描电路会扫描到第6行第5列的电位变化,依此判断行6列5的开关接通,记做扫描码键65,为了方便扫描码到asc码的转换,就把扫描码65标识为英文字母a了。
大概就这么个原理吧,我也是瞎想的,应该差不离。
2016-10-12 15:32
初始元灵
Rank: 2
等 级:论坛游民
帖 子:72
专家分:46
注 册:2016-10-10
收藏
得分:0 
回复 4楼 xzlxzlxzl
哈哈,键盘的原理。

三清之始
2016-10-12 16:18
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
Form_KeyDown事件与Form_KeyPress事件是二个不同的事件,Form_KeyDown事件是在窗体获得焦点时按下一个键盘的键是发生的事件,Form_KeyPress事件是按下或松开一个ANSI键发生的事件。
在Form_KeyDown事件中有二个参数,一个是KeyCode,是键代码,注意:是键代码,另一个是Shift,是事件发生时响应Shift、Ctrl、Alt键状态的整数。
在Form_KeyPress事件只有一个参数,KeyAscii是返回标准的ANSI键代码,注意:是返回标准的ANSI键代码,是一个整数,是标准的ANSI键代码的整数。
因此二个事件的返回值是不一样的。不然你试试下面这个代码:
程序代码:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Label1.Caption = KeyCode
  Print Chr(KeyCode)
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
   Label2.Caption = KeyAscii
   Print Chr(KeyAscii)
End Sub

图片附件: 游客没有浏览图片的权限,请 登录注册

二个标签中显示的数字是不一样的,Label1.Caption 显示的是键代码,Label2.Caption 显示的是标准的ANSI键代码。
因此你调用Chr()函数返回的字母就不一样了。

[此贴子已经被作者于2016-10-13 20:06编辑过]


请不要选我!!!
2016-10-13 20:00
快速回复:答案为什么是A a?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017036 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved