📅  最后修改于: 2020-11-19 09:00:48             🧑  作者: Mango
事件基本上是用户操作,例如按键,单击,鼠标移动等,或某些事件(例如系统生成的通知)。应用程序需要在事件发生时做出响应。
单击按钮,或在文本框中输入一些文本,或单击菜单项,所有这些都是事件的示例。事件是调用函数或可能导致另一个事件的动作。事件处理程序是告诉如何响应事件的函数。
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事件的事件处理程序获取类型为KeyEventArgs的参数。该对象具有以下属性-
Alt-指示是否按下ALT键
Control-指示是否按下了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工具栏上的“开始”按钮执行并运行上述代码后,它将显示以下窗口-
如果您将年龄或ID的文本保留为空白或输入一些非数字数据,则会显示警告消息框并清除相应的文本-