w VB.NET (nie C#) ...Jak utworzyć cancelable zdarzenia w VB.NET
Chcę utworzyć wydarzenie, niż może zostać anulowane przez słuchacza. Podobnie jak możesz anulować zamknięcie zdarzenia formularza formularza wygranej, w którym to przypadku formularz nie zostanie zamknięty.
już wdrożone klasę pochodzącą z EventArgs, który ma właściwość Cancel ustawiane następująco:
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
Zauważ, że jestem przechodzącej argumentu odwołania ByRef do konstruktora.
Ustawiony obiekt nasłuchujący ustawia właściwość Anuluj = Prawda. Myślałem, że ByRef oznaczało, że zarówno _cancel i cancel wskazują na to samo położenie na stosie, a ustawienie _cancel = true spowodowałoby, że cancel = true. Ale to nie jest zachowanie, które otrzymuję. _cancel staje się prawdą w seter, ale domyślam się, że argument konstruktora pozostaje fałszywy.
Jaki jest właściwy sposób na zrobienie tego w vb.net?
Seth
Dzięki ... to się udało. Seth –
Nie ma potrzeby dziedziczenia z 'CancelEventArgs'; możesz go użyć bezpośrednio. –
'Publiczne wydarzenie ogłoszeniowe jako AnulujEventHandler' –