Static Event
Binding:
The Visual studio.NET
use the static event binding you might to be wondering when you ask it to
skeleton definitions for your event handler methods , so understanding this kind
of event binding will be important when you working with an event driven
application framework such as window forms or web forms.
Defining Static
Event:
If You want to create
a new class named xyz to act as event listener using static event binding . you
can define a class as an event listener by adding one or more fields with the
WithEvent keyword:
Public Class classname
Private WithEvents
event name As raiseevents classname
public sub
Methodname(byval arguments
AS Integer,String,Decimal,etc)
Handles eventname.Delegateobject
End Sub
'other member omitted
End Class
Coding for Static Event Binding:
Public Delegate Sub
Transaction(ByVal amount
As Integer)
Public Class Bank
Public Event
Tran As Transaction
Public Sub
withdraw(ByVal amount
As Integer)
If (amount > 5000)
Then
RaiseEvent Tran(amount)
Else
Console.WriteLine("please enter
5000 to above amount")
End If
End Sub
End Class
Public Class Accountauditor1
Private WithEvents
account As Bank
Public Sub
handler1(ByVal amount
As Integer)
Handles account.Tran
MsgBox("handler first for withdraw")
Console.WriteLine("Please enter amount want
to withdraw")
Dim x As Integer
x = Int32.Parse(Console.ReadLine())
Dim y As Integer
y = amount - x
Console.WriteLine("your amount is now"
& y)
End Sub
Public Sub New(ByVal source
As Bank)
Me.account = source
End Sub
End Class
Public Class Accountauditor2
Private WithEvents
account As Bank
Public Sub
handler2(ByVal amount
As Integer)
Handles account.Tran
MsgBox("handler second for deposit")
Console.WriteLine("Please enter amount want
to deposit")
Dim x As Integer
x = Int32.Parse(Console.ReadLine())
Dim y As Integer
y = amount + x
Console.WriteLine("your amount is now"
& y)
Exit Sub
End Sub
Public Sub New(ByVal source
As Bank)
Me.account = source
End Sub
End Class
Module Test
Sub Main()
Dim account1 As New Bank
Dim listner1 As New Accountauditor1(account1)
Dim listner2 As New Accountauditor2(account1)
Dim options As String
Console.WriteLine("if you interset
write yes other wise no")
options = Console.ReadLine()
Dim x As Integer
Do Until
options = "no"
Console.WriteLine("pleze enter
your account blance")
x = Int32.Parse(Console.ReadLine())
account1.withdraw(x)
Console.WriteLine("if you interset write
yes other wise no")
options = Console.ReadLine()
Loop
End Sub
End Module
Output:
