5
IN VB.NET(not c#)...如何在vb.net中创建一个可取消事件
我想创建一个可以被侦听器取消的事件。就像你可以取消winforms表单的关闭事件一样,在这种情况下表单不会关闭。
我已经从具有一个可设置取消属性如下EventArgs的实现派生类:
Public Class AnnounceNavigateEventArgs
Inherits EventArgs
Private _cancel As Boolean = False
''' <summary>
''' Initializes a new instance of the AnnounceNavigateEventArgs class.
''' </summary>
Public Sub New(ByRef cancel As Boolean)
_cancel = cancel
End Sub
Public Property Cancel() As Boolean
Get
Return _cancel
End Get
Set(ByVal value As Boolean)
_cancel = value
End Set
End Property
End Class
请注意,我传递Cancel参数按地址给构造函数。
我设置的监听器将属性设置为Cancel = True。我认为ByRef意味着_cancel和cancel都指向堆栈上的相同位置,并且设置_cancel = true会使cancel = true。但这不是我得到的行为。 _cancel在setter中变成true,但我猜构造函数的参数仍然是false。
在vb.net中这样做的正确方法是什么?
赛斯
谢谢...那样做了。 Seth – 2009-08-29 17:33:59
没有必要继承'CancelEventArgs';你可以直接使用它。 – 2013-11-10 11:30:36
'公布事件为CancelEventHandler' – 2013-11-10 11:51:00