VB.Net Tutorial/Event/RaiseEvent
Raise your own event
<source lang="vbnet">Option Strict On Public Class Tester
Dim WithEvents Shared acct As Account Public Shared Sub Main() Dim warning As MyEventHander = AddressOf Display Dim bal As Decimal acct = New Account(200.00d) bal = acct.Deposit(0.00d) bal = acct.Debit(400.00d) bal = acct.Debit(5000.00d)
End Sub Friend Shared Sub Display(sender As Object,e As MyEventArgs) Console.WriteLine("Warning: The balance of {0} has fallen below {1}.", _ e.balance, e.WarningLevel) End Sub
End Class
Public Class MyEventArgs : Inherits EventArgs
Private level As Decimal Private current As Decimal Public Sub New(warningLevel As Decimal, currentBalance As Decimal) Me.level = warningLevel Me.current = currentBalance End Sub Public ReadOnly Property WarningLevel As Decimal Get Return level End Get End Property Public ReadOnly Property Balance As Decimal Get Return current End Get End Property
End Class Public Delegate Sub MyEventHander(sender As Object, _
e As MyEventArgs)
Public Class Account
Private warningLevel As Decimal Private balance As Decimal Public Event MyEvent As MyEventHander Public Sub New(warningLevel As Decimal) Me.warningLevel = warningLevel End Sub Public Function Deposit(amount As Decimal) As Decimal balance += amount RaiseEvent MyEvent(Me, _ New MyEventArgs(warningLevel, balance)) Return balance End Function Public Function Debit(amount As Decimal) As Decimal balance -= amount RaiseEvent MyEvent(Me, _ New MyEventArgs(warningLevel, balance)) Console.WriteLine("raised") Return balance End Function
End Class</source>
raised raised