×

VB.Net基本教程

VB.Net 环境设置VB.Net 程序结构VB.Net 基本语法VB.Net 数据类型VB.Net 变量VB.Net 常数和枚举VB.Net 修饰符VB.Net 声明VB.Net 指令VB.Net 运算符VB.Net 决策VB.Net 循环VB.Net 字符串VB.Net 日期和时间VB.Net 数组VB.Net 集合VB.Net 函数VB.Net Sub过程(子程序)VB.Net 类与对象VB.Net 异常处理VB.Net 文件处理VB.Net 基本控制VB.Net 对话框VB.Net 高级表单VB.Net 事件处理

VB.Net 高级教程

VB.Net 正则表达式VB.Net 数据库访问VB.Net Excel工作表VB.Net 发送邮件VB.Net XML处理VB.Net Web编程

VB.Net 有用的资源

VB.Net 有用资源

VB.Net 事件处理


事件基本上是一个用户操作,如按键,点击,鼠标移动等,或某些事件,如系统生成的通知。 应用程序需要在事件发生时对其进行响应。

单击按钮,或在文本框中输入某些文本,或单击菜单项,都是事件的示例。 事件是调用函数或可能导致另一个事件的操作。


事件处理程序是指示如何响应事件的函数。

VB.Net是一种事件驱动的语言。 主要有两种类型的事件:

  • 鼠标事件 Mouse events

  • 键盘事件 Keyboard events


处理鼠标事件

鼠标事件发生与鼠标移动形式和控件。以下是与Control类相关的各种鼠标事件:

  • MouseDown -当按下鼠标按钮时发生

  • MouseEnter -当鼠标指针进入控件时发生

  • MouseHover -当鼠标指针悬停在控件上时发生

  • MouseLeave -鼠标指针离开控件时发生

  • MouseMove -当鼠标指针移动到控件上时

  • MouseUp -当鼠标指针在控件上方并且鼠标按钮被释放时发生

  • MouseWheel -它发生在鼠标滚轮移动和控件有焦点时

鼠标事件的事件处理程序获得一个类型为MouseEventArgs的参数。 MouseEventArgs对象用于处理鼠标事件。它具有以下属性:

  • Buttons-表示按下鼠标按钮

  • Clicks-显示点击次数

  • 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工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口:


事件处理示例1

尝试在文本框中输入文字,并检查鼠标事件:


事件处理结果表


处理键盘事件

以下是与Control类相关的各种键盘事件:

  • KeyDown -当按下一个键并且控件具有焦点时发生

  • KeyPress -当按下一个键并且控件具有焦点时发生

  • KeyUp -当控件具有焦点时释放键时发生


KeyDown和KeyUp事件的事件处理程序获得一个类型为KeyEventArgs的参数。此对象具有以下属性:

  • Alt -它指示是否按下ALT键/ p>

  • Control-它指示是否按下CTRL键

  • Handled-它指示事件是否被处理

  • KeyCode- 存储事件的键盘代码

  • KeyData-存储事件的键盘数据

  • KeyValue -存储事件的键盘值

  • Modifiers-指示按下哪个修饰键(Ctrl,Shift和/或Alt)

  • Shift-表示是否按下Shift键


KeyDown和KeyUp事件的事件处理程序获得一个类型为KeyEventArgs的参数。此对象具有以下属性:

  • Handled-指示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工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口:


VB.Net事件示例


如果将age或ID的文本留空,或输入一些非数字数据,则会出现一个警告消息框,并清除相应的文本:


VB.Net事件示例

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)