Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非第10章 键盘和鼠标事件

上传人:w****i 文档编号:92482532 上传时间:2019-07-10 格式:PPT 页数:26 大小:172.50KB
返回 下载 相关 举报
Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非第10章 键盘和鼠标事件_第1页
第1页 / 共26页
Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非第10章 键盘和鼠标事件_第2页
第2页 / 共26页
Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非第10章 键盘和鼠标事件_第3页
第3页 / 共26页
Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非第10章 键盘和鼠标事件_第4页
第4页 / 共26页
Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非第10章 键盘和鼠标事件_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非第10章 键盘和鼠标事件》由会员分享,可在线阅读,更多相关《Visual C#2005程序设计教程 教学课件 ppt 作者 崔淼 陈明非第10章 键盘和鼠标事件(26页珍藏版)》请在金锄头文库上搜索。

1、第1章 Visual C#概述 第2章 C#语法基础 第3章 顺序结构程序设计 第4章 选择结构程序设计 第5章 循环结构程序设计 第6章 面向对象编程技术 第7章 继承,第8章 数组与自定义类型 第9章 菜单、工具栏与状态栏 第10章 鼠标键盘事件 第11章 ActiveX控件 第12章 数据库技术 第13章 开发Web应用程序 第14章 异常处理与部署应用程序,下一页,Visual C# 2005程序设计,上一页,第10章 键盘和鼠标事件 10.1 键盘事件 C#主要为用户提供了三种键盘事件,按下某ASCII字符键时发生KeyPress事件,按下任意键时发生KeyDown事件和释放键盘上任

2、意键时发生KeyUp事件。 10.1.1 KeyPress事件 当用户按下又放开某个ASCII字符键时,会引发当前拥有焦点对象的KeyPress事件。,章节目录,上一页,下一页,1. 判断、处理用户按键 通过KeyEventArgs类的返回参数可以判断用户按下的是哪个键。例如在窗体、文本框等控件的KeyPress事件过程中书写类似如下代码,可实现用户按键的判断。 private void Form1_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = Keys.Enter) label1.Text = “你按下了Enter键

3、“; ,章节目录,上一页,下一页,2. KeyPress事件应用实例 【例10-1】设计一个ASCII码查询程序。程序启动后显示使用方法提示,用户按下某一键后屏幕显示该键名及对应的ASCII码。单击窗体可以清屏。,章节目录,上一页,下一页,窗体Form1的KeyPress事件时代码为: private void Form1_KeyPress(object sender, KeyPressEventArgs e) / e.KeyChar返回用户在键盘上按下的字符 switch (e.KeyChar) case (char)Keys.Back: label1.Text = “退格键:“ + (in

4、t)Keys.Back + “n“ + label1.Text; break;,章节目录,上一页,下一页,case (char)Keys.Tab: label1.Text = “Tab键:“ + (int)Keys.Tab + “n“ + label1.Text; break; case (char)Keys.Enter: ) label1.Text = “回车键(Enter):“ + (int)Keys.Enter + “n“ + label1.Text; break; case (char)Keys.Space: label1.Text = “空格键:“ + (int)Keys.Space

5、 + “n“ + label1.Text; break; case (char)Keys.Escape: label1.Text = “Esc键:“ + (int)Keys.Escape + “n“ + label1.Text; break;,章节目录,上一页,下一页,default: label1.Text = e.KeyChar +“:“ + (int)e.KeyChar + “n“ + label1.Text; break; ,章节目录,上一页,下一页,10.1.2 KeyDown和KeyUp事件 KeyDown和KeyUp事件发生在用户按下键盘上某键时,通常可编写其事件代码以判断用户按

6、键的情况。 1. 判断、处理用户按键 当用户按下键盘上的任意键时,会引发当前拥有焦点对象的KeyDown事件。用户放开键盘上任意键时,会引发KeyUp事件。KeyDown和KeyUp事件通过e.KeyCode或e.KeyValue返回用户按键对应的ASCII码。,章节目录,上一页,下一页,2. 判断、处理组合键 在KeyDown和KeyUp事件中,如果希望判断用户曾使用了怎样的Ctrl、Shift、Alt组合键,可通过对象e的Control、Shift和Alt属性判断。 例如,下列代码使用户在TextBox1中按下CtrlShiftAltEnd键时结束运行。 if (e.Alt ,章节目录,上

7、一页,下一页,3. KeyDown和KeyUp事件应用实例 【例10-2】设计一个数字文本加密程序。当用户在文本框中输入一个数字字符时,程序自动将其按一定的规律(算法)转换成其他字符并显示到文本框中,在标签控件中显示原始字符。按BackSpace键可删除光标前一个字符,标签中的内容随之变化。按Enter键时显示信息框,单击【确定】按钮结束程序运行。若用户按下CtrlShiftEnd组合键,则直接结束程序运行。,章节目录,上一页,下一页,程序运行结果 确认退出,章节目录,上一页,下一页,文本框textBox1的KeyDown事件代码为: private void textBox1_KeyDown

8、(object sender, KeyEventArgs e) if (textBox1.Text = “) x = “; else x = textBox1.Text; / 如果用户按下的不是BackSpace键 if (int)e.KeyCode != (int)Keys.Back & (e.KeyValue = 48 & e.KeyValue = 96 & e.KeyValue = 105),章节目录,上一页,下一页,/ 将输入的实际字符存入Label1的Text属性中 if(e.KeyValue96) / 录入键区的数字健 label1.Text += (char)e.KeyValue

9、; else / 数字键区的数字健 label1.Text += (char)(e.KeyValue-48); / 如果按下的是BackSpace键,删除标签中最后一个字符 else if (int)e.KeyCode = (int)Keys.Back) if (label1.Textlabel1.Text.Length - 1 = :) return; label1.Text = label1.Text.Remove(label1.Text.Length - 1); ,章节目录,上一页,下一页,文本框textBox1的KeyUp事件代码为: private void textBox1_Key

10、Up(object sender, KeyEventArgs e) / 如果用户按下了CtrlShiftEnd组合键,则直接退出 if (e.Control / 如果用户按下的不是BackSpace或Enter键 if (int)e.KeyCode != (char)Keys.Back & (int)e.KeyCode != (char)Keys.Enter),章节目录,上一页,下一页, switch (int)e.KeyCode) case (char)Keys.D1: / 录入键区的“1”与数字键区的“1”共享同一操作 case (char)Keys.NumPad1: textBox1.T

11、ext = x + “!“; break; . / 将文本框中的光标移动到最后 textBox1.SelectionStart=extBox1.TextLength; ,章节目录,上一页,下一页,/ 如果用户按下的是Enter键 if (int)e.KeyCode = (int)Keys.Enter) / 如果用户单击了【确定】按钮则结束程序运行 if (MessageBox.Show(“您确实要退出程序吗?”, “确认退出“, MessageBoxButtons.OKCancel , MessageBoxIcon.Information)= DialogResult.OK) this.Clo

12、se(); ,章节目录,上一页,下一页,10.2 鼠标事件 10.2.1 鼠标事件发生的顺序 当用户操作鼠标时,将触发一些鼠标事件。这些事件的发生顺序如下: MouseEnter:当鼠标指针进入控件时触发的事件。 MouseMove:当鼠标指针在控件上移动时触发的事件。 MouseHover/MouseDown/MouseWheel:其中MouseHover事件当鼠标指针悬停在控件上时被触发;MouseDown事件在用户按下鼠标键时被触发;MouseWheel事件在拨动鼠标滚轮并且控件有焦点时被触发。 MouseUp:当用户在控件上按下的鼠标键释放时触发MouseUp事件。 MouseLeav

13、e:当鼠标指针离开控件时触发MouseLeave事件。,章节目录,上一页,下一页,10.2.2 MouseDown和MouseUp事件 当鼠标指针在某个控件上,用户按下鼠标键时,将发生MouseDown事件。当指针保持在控件上,用户释放鼠标键时,发生MouseUp事件。当用户移动鼠标指针到控件上时,将发生MouseMove事件。 例如,下列语句判断用户是否右键双击了窗体,若是则退出程序。请注意代码中的粗体字部分。 private void Form1_MouseDown(object sender, MouseEventArgs e) if (e.Button = MouseButtons.R

14、ight ,章节目录,上一页,下一页,【例10-3】设计一个MouseDown事件的示例程序。程序启动后,当用户在窗体上单击或双击右键或左键时,屏幕上显示用户的操作,程序运行结果如图10-6所示。,章节目录,上一页,下一页,窗体Form1的MouseDown事件代码为: private void Form1_MouseDown(object sender, MouseEventArgs e) string str1=“,str2=“; switch (e.Button) / 判断用户按下了哪个鼠标键 case MouseButtons.Right: str1 = “右“; break; cas

15、e MouseButtons.Left: str1 = “左“; break; ,章节目录,上一页,下一页,/ 判断用户连续按下并释放了几次鼠标键 switch (e.Clicks) case 1: str2 = “单“; break; case 2: str2 = “双“; break; label1.Text = “您“ + str2 + “击了鼠标“ + str1 + “键!“; label1.Left = (this.Width - label1.Width) / 2; ,章节目录,上一页,下一页,10.2.3 MouseMove事件 当用户在移动鼠标指针到控件上时触发MouseMov

16、e事件,与该事件相关的事件还有MouesEnter和MouseLeave事件分别在鼠标指针进入控件和离开控件时发生。 【例10-4】设计一个程序。要求将鼠标指针指向和离开按钮Button1时,按钮上显示的图片不同。当鼠标在窗体上移动时,标签中实时显示当前指针的坐标值(X,Y)。,章节目录,上一页,下一页,MouseMove、MouseEnter和MouseLeave事件应用示例,章节目录,上一页,下一页,窗体Form1的MouseMove事件代码为: private void Form1_MouseMove(object sender, MouseEventArgs e) / e.X和e.Y为MouseEventArgs类返回的当前鼠标

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号