测试环境:windows 7和Microsoft Visual Studio 2015
编程必然要知道事件,比如单击按钮事件,然后编写当事件发生时的处理代码,VB.NET是怎样进行事件处理的呢?可否自定义事件呢?因扩展控件,使其列头增加全选全不选复选框并具备分页功能需要用到自定义事件,详见博文《VB.NET学习笔记:WinForm自定义DataGridView分页组合控件》、《VB.NET学习笔记:自定义控件之扩展DataGridViewColumnHeaderCell类增加CheckBox全选复选框》,所以拜读了多篇相关事件的博文,结合自己在编程中的使用情况,谈谈我对事件的一些认识。
一、事件处理——把事件与处理事件的方法关联在一起
新建一个Windows窗体应用程序项目,在窗体里拉入一个Button控件,将其Name属性值修改为BtnEvent1,Text属性值修改为“按钮1”,然后双击按钮,即可自动生成如下按钮单击事件处理代码:
Private Sub BtnEvent1_Click(sender As Object, e As EventArgs) Handles BtnEvent1.Click
End Sub
当然也可以在代码窗口里,选择相应的项目名称,及其下相应的控件,就可以选择对应的事件,之后也会自动生成事件处理代码,如下图所示操作。
代码比VB6.0里的事件处理代码多了一些内容:
1、Handles BtnEvent1.Click:表明这个方法应处理BtnEvent1中的Click事件,Handles的目的就是把这个方法与Button类中的Click事件关联起来。
2、(sender As Object, e As EventArgs) :两个参数sender和e。这是控件类定义的参数,如果参数不对将引发错误。
参数sender和e到底是个啥呢?我们来测试一下,在事件处理代码中添加如下代码:
Private Sub BtnEvent1_Click(sender As Object, e As EventArgs) Handles BtnEvent1.Click
MessageBox.Show(sender.ToString)
MessageBox.Show(e.ToString)
End Sub
调试代码,测试结果如图所示:
经在