vb.net高手请帮帮我看看下面这代码什么意思,详解哦,先谢了,Handles 作用是什么

2025-02-25 10:14:40
推荐回答(2个)
回答1:

在VB.Net当中,事件的"关联"是需要明显标志的,不像vb6当中,声明一个过程就是事件执行过程了
Handles用来静态"关联"一个或多个事件到一个过程
"关联"时,过程的签名必须与事件的签名相同(签名的意义请查看相关文档)
在VB.Net当中,事件也是一个对象(VB.Net当中一切皆为对象)
使用Handles时实际就相当于创建了一个对委托的实现(委托的意义请查看相关文档)
可以简单的认为,当事件被触发时,被Handles"关联"了的那些过程代码将被执行
而且,被"关联"的过程可以任意起名,不需要与事件和对象的名称相对应

上述代码如果去掉Handles 及其后面的内容,它将是一个最普通不过的过程,与其它过程没有两样,也不会有任何事件被触发时去执行这段代码,正因为加入了Handles 及其后面的一堆事件,它才会因事件被触发而被执行

说得再简单一点: 当PictureBox1.DoubleClick, PictureBox4.DoubleClick, PictureBox3.DoubleClick,PictureBox2.DoubleClick当中的任何一个事件被触发时,上述这个过程的代码都将被执行

再说说参数: sender表示触发了此事件的对象,在这里就是PictureBox1/PictureBox2/PictureBox3/PictureBox4当中的某一个,利用它能知道到底是哪个对象触发了此事件,e在这里没有用处,利用不到什么,之所以有它,是因为Object/EventArgs是.Net事件的基本签名方式,它的好处在你以后对.Net深入之后能体会到.
这些参数的值都是通过被触发的事件传递过来的,可以简单的认为[事件调用了此过程并为参数赋了值]

回答2:

上述代码中,以Private形式声明了标识名为“Picturebox1_Double”的Picturebox1、Picturebox2、Picturebox3、Picturebox4的鼠标双击事件。(也就是说,双击任何一个Picturebox都会引发这个“Picturebox1_Double”的事件)

Private Sub 是声明事件开始的标记[更改事件的可见性,告诉编译器其他窗体能不能调用此事件,如果可以,那么这个Private Sub应改为Public Sub],此事件的标识名紧跟其后,方法函数被包括在圆括号里,Handle才是指示控件的事件

比如,我要声明Button1的点击事件:
Private Sub AAAAAAA(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
那么,这个是Button1的Click事件,其标识名为“AAAAAAA”