gpt4 book ai didi

vb.net - 避免重复的事件处理程序?

转载 作者:行者123 更新时间:2023-12-01 10:59:15 24 4
gpt4 key购买 nike

如何避免一个事件被处理两次(如果是同一个处理程序?)

Module Module1
Sub Main()
Dim item As New Item
AddHandler item.TitleChanged, AddressOf Item_TitleChanged
AddHandler item.TitleChanged, AddressOf Item_TitleChanged

item.Title = "asdf"

Stop
End Sub
Private Sub Item_TitleChanged(sender As Object, e As EventArgs)
Console.WriteLine("Title changed!")
End Sub
End Module

Public Class Item
Private m_Title As String
Public Property Title() As String
Get
Return m_Title
End Get
Set(ByVal value As String)
m_Title = value
RaiseEvent TitleChanged(Me, EventArgs.Empty)
End Set
End Property

Public Event TitleChanged As EventHandler
End Class

输出:

Title changed!
Title changed!

期望的输出:

Title changed!

我希望事件管理器检测到此事件已由此处理程序处理,因此不应重新处理(或读取)它。

最佳答案

您也可以总是在 AddHandler 之前调用 RemoveHandler。我发现这在特定场景中很实用。

关于vb.net - 避免重复的事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5395286/

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