IN VB.NET (non C#) ...Comment créer un événement annulable dans vb.net
Je veux créer un événement que peut être annulé par l'auditeur. Tout comme vous pouvez annuler l'événement de clôture d'un formulaire winforms, auquel cas le formulaire ne se fermera pas.
J'ai déjà mis en place une classe dérivée de EventArgs qui a une propriété Cancel comme réglable suit:
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
Notez que je passe l'argument annuler BYREF au constructeur.
L'écouteur que j'ai configuré définit la propriété sur Cancel = True. Je pensais que ByRef signifiait que _cancel et cancel allaient pointer vers le même emplacement sur la pile et que le paramètre _cancel = true rendrait donc cancel = true. Mais ce n'est pas le comportement que je reçois. _cancel devient vrai dans le setter mais je suppose que l'argument du constructeur reste faux.
Quelle est la bonne façon de le faire dans vb.net?
Seth
Merci ... qui l'a fait. Seth –
Il n'est pas nécessaire d'hériter de 'CancelEventArgs'; vous pouvez l'utiliser directement. –
'Événement public annonçant comme CancelEventHandler' –