事件基本上是用户操作,如按键,点击,鼠标移动等,或某些事件,如系统生成的通知.应用程序需要在事件发生时对其进行响应.
单击按钮,或在文本框中输入一些文本,或单击菜单项,都是事件的示例.事件是调用函数或可能导致其他事件的操作.事件处理程序是告诉如何响应事件的函数.
VB.Net是一种事件驱动的语言.主要有两种类型的事件和减号;
鼠标事件
键盘事件
鼠标事件随鼠标移动而发生在形式和控制.以下是与Control类相关的各种鼠标事件 :
MouseDown : 按下鼠标按钮时会发生
MouseEnter : 当鼠标指针进入控件时发生
MouseHover : 当鼠标指针悬停在控件上时发生
MouseLeave : 当鼠标指针离开控件时发生
MouseMove : 当鼠标指针移过控件时发生
MouseUp : 当鼠标指针悬停在控件上并且释放鼠标按钮时会发生
MouseWheel : 当鼠标滚轮移动且控件具有焦点时发生
鼠标事件的事件处理程序获得类型为的参数MouseEventArgs 的. MouseEventArgs对象用于处理鼠标事件.它具有以下属性 :
按钮 : 表示按下鼠标按钮
点击 : 表示点击次数
Delta : 表示鼠标滚轮旋转的制动器数量
X : 表示鼠标点击的x坐标
Y : 表示鼠标点击的y坐标
以下是一个示例,其中显示如何处理鼠标事件.请执行以下步骤 :
在表单中添加三个标签,三个文本框和一个按钮控件.
将标签的文本属性分别更改为 - 客户ID,名称和地址.
将文本框的名称属性分别更改为txtID,txtName和txtAddress.
将按钮的文本属性更改为"提交".
在代码编辑器窗口中添加以下代码 :
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' Set the caption bar text of the form. Me.Text = "tutorialspont.com" End Sub Private Sub txtID_MouseEnter(sender As Object, e As EventArgs)_ Handles txtID.MouseEnter 'code for handling mouse enter on ID textbox txtID.BackColor = Color.CornflowerBlue txtID.ForeColor = Color.White End Sub Private Sub txtID_MouseLeave(sender As Object, e As EventArgs) _ Handles txtID.MouseLeave 'code for handling mouse leave on ID textbox txtID.BackColor = Color.White txtID.ForeColor = Color.Blue End Sub Private Sub txtName_MouseEnter(sender As Object, e As EventArgs) _ Handles txtName.MouseEnter 'code for handling mouse enter on Name textbox txtName.BackColor = Color.CornflowerBlue txtName.ForeColor = Color.White End Sub Private Sub txtName_MouseLeave(sender As Object, e As EventArgs) _ Handles txtName.MouseLeave 'code for handling mouse leave on Name textbox txtName.BackColor = Color.White txtName.ForeColor = Color.Blue End Sub Private Sub txtAddress_MouseEnter(sender As Object, e As EventArgs) _ Handles txtAddress.MouseEnter 'code for handling mouse enter on Address textbox txtAddress.BackColor = Color.CornflowerBlue txtAddress.ForeColor = Color.White End Sub Private Sub txtAddress_MouseLeave(sender As Object, e As EventArgs) _ Handles txtAddress.MouseLeave 'code for handling mouse leave on Address textbox txtAddress.BackColor = Color.White txtAddress.ForeColor = Color.Blue End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) _ Handles Button1.Click MsgBox("Thank you " & txtName.Text & ", for your kind cooperation") End Sub End Class
当使用Microsoft Visual Studio工具栏上的开始按钮执行并运行上述代码时,它将显示以下窗口 :
尝试在文本框中输入文本并检查鼠标事件 :
以下是与Control类相关的各种键盘事件 :
KeyDown : 当按下一个键并且控件具有焦点时发生
KeyPress : 当按下一个键并且控件具有焦点时发生
KeyUp : 在控件具有焦点时释放键时发生
KeyDown和KeyUp事件的事件处理程序获取类型为
Alt : 它表示是否按下了ALT键
控制 : 它表示是否按下了CTRL键
处理 : 它表示事件是否得到处理
KeyCode : 存储事件的键盘代码
KeyData : 存储事件的键盘数据
KeyValue : 存储事件的键盘值
修饰符 : 它表示按下了哪些修改键(Ctrl,Shift和/或Alt)
Shift : 它指示是否按下Shift键
KeyDown和KeyUp事件的事件处理程序获取类型 KeyEventArgs
已处理 : 表示是否处理了KeyPress事件
KeyChar : 存储与按下的键对应的字符
让我们继续上一个例子显示如何处理键盘事件.该代码将验证用户是否为其客户ID和年龄输入了一些数字.
添加带有文本属性的标签'Age'并添加一个名为txtAge的相应文本框.
添加以下代码以处理文本框txtID的KeyUP事件.
Private Sub txtID_KeyUP(sender As Object, e As KeyEventArgs) _ Handles txtID.KeyUp If (Not Char.IsNumber(ChrW(e.KeyCode))) Then MessageBox.Show("Enter numbers for your Customer ID") txtID.Text = " " End If End Sub
添加以下代码:处理文本框txtID的KeyUP事件.
Private Sub txtAge_KeyUP(sender As Object, e As KeyEventArgs) _ Handles txtAge.KeyUp If (Not Char.IsNumber(ChrW(e.keyCode))) Then MessageBox.Show("Enter numbers for age") txtAge.Text = " " End If End Sub
当使用Microsoft Visual Studio工具栏上的开始按钮执行并运行上述代码时,它将显示以下窗口 :
如果您将年龄或身份证明的文本留空或输入一些非数字数据,它会给出一个警告信息框并清除相应的文字 :