加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读