VB.NET中同一事件的多个事件处理程序
发布时间:2020-12-17 00:05:15 所属栏目:大数据 来源:网络整理
导读:我为TextBox1的TextBox.Leave事件编写了两个事件处理程序 原因是第一个处理程序是多个TextBox.Leave事件的常用处理程序,用于验证值,第二个处理程序特定于上面的TextBox1,它执行一些值的计算. 我的查询是,我可以知道当TextBox1.Leave发生时,两个处理程序中的
我为TextBox1的TextBox.Leave事件编写了两个事件处理程序
原因是第一个处理程序是多个TextBox.Leave事件的常用处理程序,用于验证值,第二个处理程序特定于上面的TextBox1,它执行一些值的计算. 我的查询是,我可以知道当TextBox1.Leave发生时,两个处理程序中的哪一个将首先执行? (我知道我可以将公共处理程序中的代码删除到TextBox1的特定处理程序,但我仍然想知道是否有办法.) 谢谢
只要使用AddHandler语句添加事件处理程序,就可以保证事件处理程序的调用顺序与添加它们的顺序相同.另一方面,如果您在事件处理程序方法上使用Handles修饰符,我认为没有任何方法可以确定订单是什么.
这是一个简单的例子,演示了由调用AddHandler的顺序决定的顺序: Public Class FormVb1 Public Class Test Public Event TestEvent() Public Sub RaiseTest() RaiseEvent TestEvent() End Sub End Class Private _myTest As New Test() Private Sub Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs) Handles Button1.Click AddHandler _myTest.TestEvent,AddressOf Handler1 AddHandler _myTest.TestEvent,AddressOf Handler2 _myTest.RaiseTest() RemoveHandler _myTest.TestEvent,AddressOf Handler1 RemoveHandler _myTest.TestEvent,AddressOf Handler2 End Sub Private Sub Handler1() MessageBox.Show("Called first") End Sub Private Sub Handler2() MessageBox.Show("Called second") End Sub End Class (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |