第4章 常用内部控件和鼠标键盘事件
- 格式:ppt
- 大小:1.06 MB
- 文档页数:6
计算机二级VB考点分析之键盘与鼠标事件过程8.1 KeyPress事件考点1 KeyPress事件在窗体上画一个控件(指可以发生KeyPress事件的控件),并双击该控件,进入程序代码窗口后,从―过程‖框中选取KeyPress,即可定义KeyPress事件过程。
一般格式为:Private Sub Textl KeyPress(KeyAscii As Integer)End SubKeyPress事件带有一个参数,这个参数有两种形式,第1种形式是Index As Integer,只用于控件数组;第2种形式是KeyAscii As Integer,用于单个控件。
8.2 KeyDown和KeyUp事件考点2 KeyDown和KeyUp事件KeyDown和KeyUp事件的参数也有两种形式,其中Index As Integer只用于控件数组,而KeyCode As Integer,Shift As Integer用于单个控件。
KeyDown和KeyUp事件都有两个参数,即KeyCode和Shift。
(1)KeyCode是按键的实际ASCII码。
该码以―键‖为准,而不是以―字符‖为准(2)Shift转换键。
它指的是3个转换键的状态,包括Shift,Ctrl和Alt键,这3个键分别以二进制形式表示,每个键有3位,即Shift键为001,Ctrl键为010,Alt键为100。
10.3 鼠标事件考点3 鼠标事件为了实现鼠标操作,Visual Basic提供了3个过程模板:1按下鼠标键事件过程Private Sub Form MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)End Sub2松开跳标键事件过程Private Sub Form MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single) End Sub3移动鼠标光标事件过程Private Sub Form MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single) End Sub上述事件过程使用于窗体和大多数控件,包括复选框、命令按钮、单选按钮、框架、文本框、目录框、文件框、图像框、图片框、标签、列表框等。
目录1. 焦点事件(onfocus得到焦点事件、onblur失去焦点事件) (1)2.onchange事件(以select为例) (1)3.鼠标事件(onmouseover、onmouseout) (2)4.键盘事件(keydown按下、keyup释放、keypress按下并释放)text只能数数字限制 (2)1. 焦点事件(onfocus得到焦点事件、onblur失去焦点事件)Js代码:<script type="text/javascript">function upperCase(){var x=document.getElementById("fname").value;document.getElementById("fname1").value=x.toUpperCase();}</script>HTML代码:<body>输入您的姓名:<input type="text" id="fname" onblur="upperCase()"onfocus="javascript:if(this.value==''){ alert('输入姓名');}" /><input type="text" id="fname1"/></body>2.onchange事件(以select为例)当xxx改变时触发的事件Js:<script>function bao(s){var x=document.getElementById("sel").value;//获取select的选中的值document.getElementById("fname1").value=x.toUpperCase(); 将选中的select的value值赋给fmane1}</script>HTML:<body><select name="sel" id="sel" onchange="bao();"><option value="">请选择</option><option value="1">Item 1</option><option value="2">Item 2</option><option value="3">Item 3</option></select><input type="text" id="fname1" /></body>3.鼠标事件(onmouseover、onmouseout)<input name="textfield3" type="text" size="30"onmouseover="this.style.color='#000000';"onmouseout="if (this.value == '请输入需要查询的信息'){this.style.color = '#ACACAC'}" onblur="if (this.value == '') { this.value = '请输入需要查询的信息'; this.style.color = '#ACACAC' } else { this.style.color = '#000000'; }"onclick="if (this.value == '请输入需要查询的信息') { this.value = ''; this.style.color = '#000000'; }" value="请输入需要查询的信息" />4.键盘事件(keydown按下、keyup释放、keypress按下并释放)text只能数数字限制Js:<script language="javascript">function keyPress() {var keyCode = event.keyCode;event.returnValue = (keyCode >= 48 && keyCode <= 57)}function clearNoNum(obj){obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的.obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");}</script>HTML:<body>js只能输入数字:<INPUT TYPE="text" NAME="pName" onkeypress="keyPress()"> <br /> js数字和.<input name="input1" onkeyup="clearNoNum(this)"> <br />onkeyup(按键)、onafterpaste(复制)只能输入数字:<input type="text"onafterpaste="this.value=this.value.replace(/\D/g,'')"onkeydown="this.value=this.value.replace(/\D/g,'')"value="" name="search_card" class="search_card"></body>。
一、窗体(属性)这连个属性用来显示窗体右上角的最大、最小化按钮。
如果希望显示最大或最小按钮,则应该将两个属性这两项设置不起作用。
因此,即使把maxbutton最小化按钮也不会消失。
如果borderstyle属性被设置为0——none属性定义的名称是在程序代码中使用的对象名,与对象的标题(caption)是只读属性,在运动时,对象的名称不能改变。
一、窗体(事件):事件是作用于对象上的一种动作或行为,也可以理解为是对象能够识别(也称响应)常用标准控件大多数控件都具有的属性:Borderstyle enable Fontbold fontitalic fontname fontsize fontunderlineHeight left name top visible width,此外不同的控件还具相应的属性文本控件与文本有关的控件有两个,即标签和文本框,在标签中只能显示文本,不能进行编辑,而在文本框中即可以显示文本,有可输入文本。
二、标签1、标签主要用来显示文本信息,所显示的内容只能用caption属性来设置或修改,不能直接编辑,有时候,标签常用来标注本身不具有caption属性的控件,例如可以使用标签为文本框、列表框组合框等控件附加描述信息。
标签一般不响应事件三、文本框1、文本框属性文本框支持click和dblclick等鼠标事件,同时支持change、gotfocus、lostfocus等事件。
1)Change当用户向文本框中输入新信息时,或当程序吧text属性设置为新值从而改变文本框的text属性时,将触发chang事件。
2)Gotfocus当文本框具有输入焦点(即处于活动状态)时,从键盘输入的每个字符都将在该文本框中显示出来3)lostfocus当按下tab键使光标离开当前文本框或者用鼠标选择窗体中的的其他对象时触发该事件,用change事件过程和lostfocus事件过程都可以检查文本框的text属性值,但后者更有效。
第八章键盘与鼠标操作 (2w)程序在运行过程中,经常需要知道用户对键盘和鼠标的具体操作,例如用户按下键盘上的“A”键时是想输入字符“A”还是输入“a”呢,当用户利用鼠标选中“删除”时是想彻底删除还是想放入回收站呢等等,以便于根据不同的情况,执行不同的具体操作。
为此Visual Basic专门定义了和键盘与鼠标有关的事件和方法。
8-1键盘操作当我们敲击一下键盘上的某个按键时,将会先后触发对应对象的KeyDown、KeyPress、(对于文本框之类的对象还会触发Change)、KeyUp等一系列事件。
根据不同的具体应用,我们可以选择不同的事件进行编程。
需要说明的是,对键盘的某个按键进行操作时,触发的是目前具有输入焦点(Focus)对象的事件。
一般情况下窗体对象不响应这些事件,除非满足下面几个条件:1.目前窗体上没有添加任何对象,则窗体接收键盘事件。
2.目前窗体上有对象,但是它们属于下面两种情况:1)这类对象不具有接收焦点的能力,例如:标签、框架、形状(Shape)、Timer、Image等等2)这类对象本来可以接收焦点(例如:文本框),但目前处于Disabled状态。
3.窗体的KeyPreview属性为True。
所谓KeyPreview的属性为True,就是说无论在窗体内的什么控件内利用键盘输入,都需要事先经过窗体进行检查。
其中,前两种情况下只触发窗体的KeyDown、KeyPress、KeyUp事件,第三种情况下将先后触发窗体的KeyDown、控件的KeyDown、窗体的KeyPress、控件的KeyPress、窗体的KeyUp、控件的KeyUp事件。
8-1-1 KeyPress事件KeyPress事件过程的的形式有两种:Private Sub 对象名_KeyPress(KeyAscii As Integer) '用于非控件数组Private Sub 对象名_KeyPress(Index As Integer, KeyAscii As Integer) '用于控件数组其中:KeyAscii的值在本过程中由系统自动提供,就是用户输入字符的ASCII值。
键盘、鼠标事件的处理事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。
对于初学者,总会对Qt中信号和事件的概念混淆不清。
其实,记住事件比信号更底层就可以了。
比如说,我们用鼠标按下界面上的一个按钮,它会发射clicked()单击信号,但是,它怎么知道自己被按下的呢,那就是通过鼠标事件处理的。
这里可以看到,鼠标事件比信号更底层。
在Qt中处理事件有多种方法,不过最常用的是重写Qt事件处理函数。
这里我们就以鼠标事件和键盘事件为例来进行简单的介绍。
一、鼠标事件1.新建Qt Gui应用,项目名称为“myEvent”,基类更改为QWidget,类名为Widget。
2.完成项目创建后,在设计模式向界面上拖入一个Push Button。
3.在widget.h文件添加鼠标按下事件处理函数声明:protected:void mousePressEvent(QMouseEvent*);4.到widget.cpp文件中先添加头文件包含:#include<QMouseEvent>然后在下面添加函数的定义:void Widget::mousePressEvent(QMouseEvent*e){ui->pushButton->setText(tr("(%1,%2)").arg(e->x()).arg(e->y()));}这里的arg()里的参数分别用来填充%1和%2处的内容,arg()是QString类中的一个静态函数,使用它就可以在字符串中使用变量了。
其中x()和y()分别用来返回鼠标光标所在位置的x和y坐标值。
这样,当鼠标在界面上点击时,按钮就会显示出当前鼠标的坐标值。
效果如下图所示。
除了鼠标按下事件,还有鼠标释放、双击、移动、滚轮等事件,其处理方式与这个例子是相似的。
二、键盘事件1.首先在widget.h中添加protected函数声明:void keyPressEvent(QKeyEvent*);2.然后到widget.cpp中添加头文件包含:#include<QKeyEvent>3.最后添加键盘按下事件处理函数的定义:void Widget::keyPressEvent(QKeyEvent*e){int x=ui->pushButton->x();int y=ui->pushButton->y();switch(e->key()){case Qt::Key_W:ui->pushButton->move(x,y-10);break;case Qt::Key_S:ui->pushButton->move(x,y+10);break;case Qt::Key_A:ui->pushButton->move(x-10,y);break;case Qt::Key_D:ui->pushButton->move(x+10,y);break;}}这里我们先获取了按钮的位置,然后使用key()函数获取按下的按键,如果是指定的W、S、A、D等按键时则移动按钮。
控件的基本操作控件是指在用户界面中用来接收用户输入或显示输出信息的各种组件,如按钮、文本框、下拉列表等。
掌握控件的基本操作是进行界面设计和编程的必备技能之一。
本文将从创建、设置属性、事件处理等方面介绍控件的基本操作。
一、创建控件1. 在窗体上添加控件:在Visual Studio中,打开窗体设计器,选择工具箱中需要添加的控件,然后在窗体上单击鼠标左键即可添加。
2. 动态创建控件:在代码中使用语句创建控件对象,并设置其属性和事件处理程序。
二、设置属性1. 常见属性:包括位置(Location)、大小(Size)、文本(Text)、可见性(Visible)等。
2. 属性设置方法:可以通过设计器中的属性窗格或代码中使用点号引用属性名称的方式进行设置。
三、事件处理1. 常见事件:包括单击(Click)、双击(DoubleClick)、键盘按下(KeyDown)等。
2. 事件处理方法:可以通过设计器中的事件窗格或代码中使用“+=”符号订阅事件处理程序。
四、常用控件操作1. 按钮(Button):① 单击事件处理程序:private void button1_Click(object sender, EventArgs e){//执行操作}② 设置文本:button1.Text = "确定";2. 文本框(TextBox):① 获取文本:string text = textBox1.Text;② 设置文本:textBox1.Text = "请输入内容";3. 下拉列表(ComboBox):① 添加选项:comboBox1.Items.Add("选项一");② 获取选中项:string selected = comboBox1.SelectedItem.ToString();4. 复选框(CheckBox):① 获取状态:bool isChecked = checkBox1.Checked;② 设置状态:checkBox1.Checked = true;五、小结控件的基本操作包括创建、设置属性和事件处理等方面,掌握这些操作是进行界面设计和编程的必备技能之一。
C#常⽤控件及单击事件1、窗体1、常⽤属性(1)Name属性:⽤来获取或设置窗体的名称,在应⽤程序中可通过Name属性来引⽤窗体。
(2)WindowState属性:⽤来获取或设置窗体的窗⼝状态。
取值有三种: Normal (窗体正常显⽰)、 Minimized(窗体以最⼩化形式显⽰)和 Maximized(窗体以最⼤化形式显⽰)。
(3)StartPosition属性:⽤来获取或设置运⾏时窗体的起始位置。
(System.Windows.Forms.SystemInformation.WindowsArea.Height获取显⽰器的⾼度)(4)Text属性:该属性是⼀个字符串属性,⽤来设置或返回在窗⼝标题栏中显⽰的⽂字。
(5)Width属性:⽤来获取或设置窗体的宽度。
(6)Height属性:⽤来获取或设置窗体的⾼度。
(7)Left属性:⽤来获取或设置窗体的左边缘的x坐标(以像素为单位)。
(8)Top属性:⽤来获取或设置窗体的上边缘的y坐标(以像素为单位)。
(9)ControlBox属性:⽤来获取或设置⼀个值,该值指⽰在该窗体的标题栏中是否显⽰控制框。
值为true时将显⽰控制框,值为false时不显⽰控制框。
(10)MaximizeBox属性:⽤来获取或设置⼀个值,该值指⽰是否在窗体的标题栏中显⽰最⼤化按钮。
值为 true时显⽰最⼤化按钮,值为false时不显⽰最⼤化按钮。
(11)MinimizeBox 属性:⽤来获取或设置⼀个值,该值指⽰是否在窗体的标题栏中显⽰最⼩化按钮。
值为 true时显⽰最⼩化按钮,值为false时不显⽰最⼩化按钮。
(12)AcceptButton 属性:该属性⽤来获取或设置⼀个值,该值是⼀个按钮的名称,当按 Enter 键时就相当于单击了窗体上的该按钮。
(13)CancelButton 属性:该属性⽤来获取或设置⼀个值,该值是⼀个按钮的名称,当按 Esc 键时就相当于单击了窗体上的该按钮。