gpt4 book ai didi

vb.net - VB.NET 中同一事件的多个事件处理程序

转载 作者:行者123 更新时间:2023-12-04 22:14:38 25 4
gpt4 key购买 nike

我为 TextBox.Leave 编写了两个事件处理程序。 TextBox1 的事件

原因是第一个处理程序是多个 TextBox.Leave 的通用处理程序。验证值的事件,第二个特定于上述 TextBox1它对值进行了一些计算。

我的问题是,当 TextBox1.Leave 时,我可以知道两个处理程序中的哪一个将首先执行吗?发生?

(我知道我可以将公共(public)处理程序中的代码删除到 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

关于vb.net - VB.NET 中同一事件的多个事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12588350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com