[竖版]第2讲 - 键盘事件
窗体的键盘事件

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case Shift Case 1 Label2.Caption = "按下的是shift" Case 2 Label2.Caption = "按下的是ctrl" Case 4 Label2.Caption = "按下的是alt" Case 6 Label2.Caption = "按下的是alt和ctrl" Case Else Label2.Caption = "没有按下shift,ctrl ,alt" End Select End Sub
窗体的键盘事件
回顾复习:
窗体的事件: 1 click事件:只有单击鼠标才能执行操作。 2 load事件:窗体的载入事件,窗体一旦运行 就执行操作,一般用于对窗体的初始属性进 行设置,例如背景色,字体等等。 3 resize 事件:窗体的重置事件。在窗体的运行过 程中,如果不希望窗体的大小改变影响控件在窗 体的布局,需将控制命令写入该事件。(例子)
键盘上的辅助键: Shift、ctrl、alt 和其他按键的区别:当他们是辅助作用的 时候,是要按下不松手的,他们的测试就 不能通过keypress事件。
keydown
Keydown 用于检验辅助工具是否处于按下 状态 Keyup 用于检验按键是否释放。
如果窗体中有文本框,怎么办?
keypreview 属性 如果把窗体的KeyPreview属性设为True, 那么窗体将比其内的控件优先获得键盘事 件的激活权。 比如窗体Form1和其内的文本框Text1都准 备响应KeyPress事件,那么以下代码将首 先激活窗体的KeyPress事件。
第2章 键盘和鼠标事件

2.1
2.1.1 KeyPress事件 KeyPress事件
键盘事件
键盘事件:将窗体的KeyPreview属性设置为True KeyPreview属性设置为True。 键盘事件:将窗体的KeyPreview属性设置为True。 KeyPress事件中有一个参数 KeyPress事件中有一个参数e,是系统定义的 事件中有一个参数e System.Windows.Forms.KeyEventArgs类 System.Windows.Forms.KeyEventArgs类,它的 KeyChar属性返回用户所按键的字符 属性返回用户所按键的字符。 KeyChar属性返回用户所按键的字符。 1. 判断、处理用户按键 判断、
第 2 章
键盘和鼠标事件
本章讲述的主要内容
2.1 键盘事件 2.2 鼠标事件
第 2 章
1.键盘事件: 1.键盘事件: 键盘事件
键盘和鼠标事件
KeyPress:按下某ASCII字符键。 KeyPress:按下某ASCII字符键。 ASCII字符键 KeyDown:按下任意键。 KeyDown:按下任意键。 KeyUp:释放键盘上的任意键。 KeyUp:释放键盘上的任意键。
2.1
2.1.1 KeyPress事件 KeyPress事件
键盘事件
键盘和鼠标事件

例如:直接按光标键时移动图片的位置,按 下Shift键再按光标键时放缩图片,按 Shift+Ctrl键时复位图片的位置及大小。 将窗体的KeyPreview属性设置为True Image1的Strech属性设置为True.
Private Sub Form_Load() Label1.Caption = "直接按光标键移动图片,按下 Shift键再按光标键放缩图片,按Shift+Ctrl键复 位图片。" End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 3 Then Image1.Move 2000, 1000, 1000, 1000 '复位图 片 End If
KeyPress事件中得到的是按键对应的字符 的ASCII码(KeyAscii) KeyUp,KeyDown事件中得到的是按键对应 的键号(KeyCode),键盘104个键都对应着 唯一的键号。
KeyPress事件 对象的KeyPress事件过程的一般格式为:
Privat Sub Object_KeyPress(KeyAscii As Integer)
Function ShiftStatus(Shift As Integer) As String Select Case Shift Case 0: s = "" Case 1: s = “Shift+" Case 2: s = "Ctrl+" Case 3: s = "Shift+Ctrl+" Case 4: s = "Alt+" Case 5: s = "Shift+Alt+" Case 6: s = "Ctrl+Alt+" Case 7: s = "Shift+Ctrl+Alt+" End Select ShiftStatus = s End Function
鼠标和键盘事件

第14页
5、标签数组的使用 Label[] lblArray; lblArray; lblArray = new Label[] { label1, label4, label5, label4 label5 label6 label7 label8 label6, label7, label8 }; 将所有label1的地方外层加循环 的地方外层加循环, label1改为 将所有label1的地方外层加循环,将label1改为 lblArray[i]
第9页
【打字游戏】 打字游戏】
要使窗体在可以获得焦点的控件之前截获键盘事件, 要使窗体在可以获得焦点的控件之前截获键盘事件, 应该将窗体的KeyPreview属性设为 属性设为true。 应该将窗体的 属性设为 。 (1)窗体的KeyPreview属性设为 )窗体的 属性设为true 属性设为 (2)int score //表示得分 ) 表示得分
第11页
2、标签上文字的获取 假设范围为英文字母A 假设范围为英文字母A—Z。 Random aa=new Random(); label1.Text= ( (char) aa.Next(65,91)).ToString();
第12页
3、键盘事件 private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == char.Parse(label1.Text) || e.KeyChar == char.Parse(label1.Text.ToLower())) { score += 10; label3.Text = score.ToString(); label1.Text = ((char)aa.Next(65, 91)).ToString(); label1.Top = 20问题 1、鼠标的位置 、 2、哪个鼠标按键按动 、
老年大学-第2讲-熟悉键盘,学习打字资料

教师:齐 悦、张薇
太原广播电视大学老年学院
第二课:熟悉键盘、学习打字
1、熟悉键盘
• 台式电脑的键盘一般分为五个区: 主键盘区 功能键区 控制键区 数字键区 状态指示区
2、金山打字通 • 请大家双击电脑桌面的金山打字通图标
• 熟悉主键盘基准键位 • 根据基准键位进一步学习手指分工
3、打字过程中可能遇到的问题 • 关于输入法
• 练习打字(运用金山打字通)
电脑键盘英文字母大小写对照表
大小写字母对照详解
基准键位一排对应的字母对照,其中的S和K 由于大小写的形式基本一致所以较为简单,请 大家重点关注L
• 键盘中第一排字母的大小写对照,其中 大家注意其中的字母I • 这里重点说一下字母L(小写l)和I(小 写i)
• 最后一排的字母大小写对照,这些字母 相对简单,其中的B和N需要大家重点 记忆,别的基本大小写一致。
输入法
• 输入法切换
搜狗拼音
微软拼音 智能ABC
• 功能键的使用 退格:它的作用是使光标左移一格 回车:Enter 用于换行 大写:Caps Lock 用于大写字母的输入 上档转换键:Shift用于上档转换及档 转换
4、打字实践 • 熟悉键盘操作后可以应用到一些文字编 辑软件的使用中去 • 如:记事本 Office word 等
Action Script 3.0 键盘事件

Action Script 3.0 键盘事件键盘事件都是由KeyboardEvent类来管理,其只有keyDown和keyUp两个事件,分别表示按下键和释放键。
这两个事件的事件名是由KeyboardEvent类的类发展KEY_DOWN 和KEY_UP来表示。
KeyboardEvent类同时定义了一些属性和方法来辅助键盘事件的处理,其属性如表6-8所示。
其中,keyCode属性最常用,它通常用于判断某个键是否按下或释放。
例如,keyDown 事件只是判断键是否按下,如果要判断某个键是否被按下,就需要使用keyCode属性来判断。
当某个键按下时,如果按键的keyCode属性等于键控代码,则说明该键被按下,对于keyUp事件的处理也是一样。
KeyboardEvent类的方法如表6-9所示。
表6-9 KeyboardEvent类的方法例如,创建一个名称为mc的猴子跑步影片剪辑元件,并将其拖入到舞台中。
然后,使用KeyboardEvent类的keyCode属性来判断是否按下左右方向键,并调用keyDownHandler ()函数来制作猴子的移动及方向,代码如下所示。
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);//侦听键盘按下事件,并调用keyDownHandler()函数function keyDownHandler(event:KeyboardEvent):void {if (event.keyCode==39){ //当用户按下右方向键mc.x+=5; //名称为mc的元件沿x轴坐标向右移动}else if(event.keyCode==37){ //当用户按下左方向键mc.x-=5; //名称为mc的元件沿x轴坐标向左移动}}为“猴子”影片剪辑元件设置【实例名称】为“mc”。
然后,将上面的代码放在“AS”图层的第一帧中,预览效果如图6-1所示。
键盘与文本事件(keydown、keypress和keyup触发顺序及其区别)

键盘与文本事件(keydown、keypress和keyup触发顺序
及其区别)
键盘事件
键盘事件主要有三个,也是平常开发过程中,尤其是在文本框输入时,非常常用的。
•keydown:当用户按下键盘上的任意键时触发,如果按住不放会重复触发。
•keypress:当用户按下键盘上的字符键时触发,如果按住不放会重复触发。
(ESC 键也会触发)
•keyup:当用户释放键盘上的键时触发。
虽然所有的元素都支持上面的三个事件,但是只有在用户通过文本输入时才最常用。
触发顺序:
当用户按了一个键盘上的字符键时,首先触发 keydown 事件,然后紧跟着时keypress 事件,最后会触发keyup 事件。
其中,keydown 和keypress 都是在文本框发生变化之前被触发的;而keyup 是在文本框已经改变之后触发的。
修改键:
键盘事件中的修改键与鼠标事件的修改键类似。
而且键盘事件的事件对象中也有shiftKey、ctrlKey、altKey 和metaKey 属性。
文本事件
文本事件只有一个:
textInput:这个事件是对 keypress 的补充,用意是在将文本显示给用户之前更容易拦截文本。
在文本插入文本框之前会触发textInput 事件。
详细介绍见另一篇博客:
https:///TalonZhang/article/details/84447459。
详解键盘事件(keydown,keypress,keyup)

详解键盘事件(keydown,keypress,keyup)⼀、键盘事件基础1、定义keydown:按下键盘键keypress:紧接着keydown事件触发(只有按下字符键时触发)keyup:释放键盘键顺序为:keydown -> keypress ->keyup2、⽰例3、详解1)⽤户按下键盘上的字符键时⾸先会触发keydown事件然后紧接着触发keypress事件最后触发keyup事件如果⽤户按下了⼀个字符键不放,就会重复触发keydown和keypress事件,直到⽤户松开该键为⽌2)当⽤户按下⾮字符键时⾸先会触发keydown事件然后就触发keyup事件如果⽤户按下了⼀个⾮字符键不放,就会重复触发keydown事件,直到⽤户松开该键为⽌3)在keyup事件中⽆法阻⽌浏览器默认事件,因为在keypress时,浏览器默认⾏为已经完成,即将⽂字输⼊⽂本框(尽管这时还没显⽰),这个时候不管是preventDefault还是returnValue = false,都不能阻⽌在⽂本框中输⼊⽂字的⾏为,如要阻⽌默认⾏为,必须在keydown或keypress时阻⽌4)发⽣keypress事件意味着按下的键会影响到屏幕中⽂本的显⽰,即在所有浏览器中,按下能够插⼊或删除字符的键都会触发keypress事件⼆、键码和键盘事件系统功能键:Esc、Tab、CapsLk、Shift、Ctrl、Alt、Enter、Backspace、Print Screen、Scroll Lock、Pause Break、Insert、Delete、Home、End、Page Up、Page Down, F1 ~ F12,Num Lock、The Arrow Keys1、键盘中的键分为字符键 (可打印) 和功能键 (不可打印)keypress⽀持的系统功能键:Firefox:Esc、Enter、Backspace、Pause Break、Insert、 Delete、Home、End、Page Up、Page Down、F1 through F12、The Arrow Keys、上下左右键Chrome / Oprea / Safari :EnterIE:Esc、Enter除了 Firefox,其他chrome、oprea、safari、IE 上下左右键不会触发kepress2、keyCode(键码)、which、charCode(字符编码)简写记忆:keydown: 获得keyCode, charCode=0keyup: 获得keyCode, charCode=0keypress: 字符keyCode=0,获取charCode值,反之获取keyCode,charCode=0详述:event对象包含⼀个keyCode属性和⼀个charCode属性当捕捉的是keydown和keyup事件时,keyCode表⽰的就是你具体按的键(也称为virtual keycode),charCode为0当捕捉的是keypress事件时,keyCode为0,charCode指的是你按下的字符(⽽ IE 只有⼀个KeyCode属性,它指的是你键⼊的字符(charactercode))鉴于IE 和 FF中的区别,建议只使⽤keydow和keyup事件3、keypress 和 keydown / keyup 的区别区别简述1)keypress对中⽂输⼊法⽀持不好,⽆法响应中⽂输⼊2)keypress⽆法响应系统功能键(如delete,backspace)3)由于前⾯两个限制,keydown和keyup对keyCode不敏感区别详解对系统功能键的响应⽅⾯keypress事件不能对系统功能键(对中⽂输⼊法不能有效响应)进⾏正常的响应keydown和keyup均可以对系统功能键进⾏有效的拦截,但事件截获的位置不同keyCode对字母的⼤⼩写敏感程度keypress事件的keyCode对字母的⼤⼩写敏感keydown、keyup事件不敏感主附键盘的数字键敏感程度keypress事件的which值⽆法区分主键盘上的数字键和附键盘数字键的keydown、keyup事件的which值对主附键盘的数字键敏感4、需要注意的地⽅1)英⽂输⼊法所有浏览器都⽀持这三个事件2)中⽂输⼊法(浏览器之间表现得不太⼀致)IE,Chrome,Safari:触发keydown和keyup,不触发keypressFirefox:⾸次按下时触发keydown,不触发keypress在停⽌输⼊并改变⽂本框内容(如按下回车或者空格键)后会触发keyup(只有在触发keyup事件才能获得修改后的⽂本值)Opera:keydown, keypress和keyup都不触发3)⼤⼩写⼤写:keydown、keypress(字母,主键盘数字、回车)、keyup的which值相等⼩写:kepress获取的which不同于keydown、keyup5、keyCode对照表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
键盘效果:
运行结果: 键盘效果:
keys.UP
按下向上方向键后,输出 区中就会打印'keys.UP'
运行结果:
keys.DOWN
键盘效果:
按下向下方向键后,输出 区中就会打印'keys.DOWN'
运行结果:
keys.LEFT
按下向左方向键后,输出 区中就会打印'keys.LEFT'
运行结果:
keys.RIGHT
B. KEYS.RIGHT D. keys.RIGHT
(3) 下列哪个选项可以实现当用户按下键盘向下方向键 ( A ) 时,角色hetao屏幕下方移动?
A. if key == keys.DOWN: hetao.y += 50
B. if key == keys.UP: hetao.y += 50
C. if key == key.LEFT: hetao.y += 50
B. hetao.y = 10 D. hetao -= 10
(2)当用户按下键盘的向右方向键时,对应的参数key 值为?
(
)
A. KEY.RIGHT C. keys.right
B. KEYS.RIGHT D. keys.RIGHT
(3) 下列哪个选项可以实现当用户按下键盘向下方向键 ( ) 时,角色hetao屏幕下方移动?
C. if key == keys.RIGHT: hetao.y += 50
7
1
(0,0) 向左移动后
(0,200)
(200,0) (0,0) (200,200) (0,200)
(200,0) 向右移动后
(200,200)
② 向上或向下移动
• 在pygame坐标系中,纵坐标从上到下逐渐增大。 若要使角色向上移动,就要将角色的纵坐标的值减小; 同理角色向下移动时,角色的纵坐标值就要增大。
下级代码
参数
按键名称 向左方向键 向右方向键 向上方向键 向下方向键
对应参数值 keys.LEFT keys.RIGHT keys.UP keys.DOWN
例子: import pgzrun
def on_key_down(key):
print(key)
1
pgzrun.go()
1 定义on_key_down()函数,打印参数key。
L4-2 键盘事件
1. 知识目录
• 角色坐标 • on_key_down()函数的参数 —— key • 根据按键控制角色移动
2. 知识探索
(1)角色坐标
(0,0)
(200,0)
初始位置
(0,200)
(200,200)
① 向左或向右移动 • 在pygame坐标系中,横坐标从左到右逐渐增大。
若要使角色向左移动,就要将角色的横坐标的值减小; 同理角色向右移动时,角色的横坐标值就要增大。
4
pgzrun.go()
1 参数key等于键盘左键时,角色hetao向左移动,x坐标减小50。
2 参数key等于键盘右键时,角色hetao向右移动,x坐标增大50。
3 参数key等于键盘上键时,角色hetao向上移动,y坐标减小75。
4 参数key等于键盘下键时,角色hetao向下移动,y坐标增大75。
hetao.draw()
def on_key_down(key):
if key == keys.LEFT:
hetao.x -= 50
1
if key == keys.RIGHT: hetao.x += 50
2
if key == keys.UP:
hetao.y -= 75
3
if key == keys.DOWN: hetao.y += 75
(0,0)
(200,0) (0,0)
(200,0)
向上移动 (0,200)
(200,200) (0,200)
向下移动 (200,200)
2
(2) on_key_down()函数的参数 —— key
概念:在用户按下键盘上的按键时,参数key中保存的 是用户按下的按键。
下划线
格式: def on_key_down(key):
A. if key == keys.DOWN: hetao.y += 50
B. if key == keys.UP: hetao.y += 50
C. if key == key.LEFT: hetao.y += 50
C. if key == keys.RIGHT: hetao.y += 50
• 答案
#注意:参数key中保存的是用户按下的按键。当用户按下的按键为: 向左方向键、向右方向键、向上方向键、向下方向键时,小核桃会移 动。当用户按下其他按键时,小核桃不会移动。
5
3. 练习
(1)下面哪个选项可以控制角色hetao向屏幕上方移动? ( )
A. hetao.y += 10 C. hetao.y -=10
按下向右方向键后,输出 区中就会打印'keys.RIGHT'
4
(3)根据按键控制角色移动
例子:
import pgzrun
WIDTH = 300
HEIGHT = 300
hetao = Actor('小核桃')
hetao.x = 150
hetao.y = 150
def draw():
screen.clear()
(1)下面哪个选项可以控制角色hetao向屏幕上方移动?
A. hetao.y += 10 C. hetao.y -=10
B. hetao.y = 10 D. hetao -= 10
( C)
(2)当用户按下键盘的向右方向键时பைடு நூலகம்对应的参数key 值为?
( D)
A. KEY.RIGHT C. keys.right