en VB.NET (no C#) ...¿Cómo se crea un evento cancelable en vb.net
Quiero crear un evento que puede ser cancelado por el oyente. Al igual que puede cancelar el evento de cierre de un formulario de winforms en cuyo caso el formulario no se cerrará.
que ya han implementado una clase derivada de EventArgs que tiene un ajustable Cancelar propiedad como sigue:
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
en cuenta que estoy pasando el argumento cancelar byRef al constructor.
El detector que tengo configurado establece la propiedad en Cancelar = Verdadero. Pensé que ByRef significaba que tanto _cancel como cancel apuntarían a la misma ubicación en la pila y que la configuración _cancel = true haría por lo tanto cancel = true. Pero este no es el comportamiento que estoy obteniendo. _cancel se convierte en verdadero en el colocador, pero supongo que el argumento para el constructor sigue siendo falso.
¿Cuál es la forma correcta de hacerlo en vb.net?
Seth
Gracias ... eso lo hizo. Seth –
No hay necesidad de heredar de 'CancelEventArgs'; puedes usarlo directamente –
'Anuncio de evento público como CancelEventHandler' –