Use Delegate to react to an Event : Event « Development « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Date Time
8.Development
9.Event
10.File Directory
11.Generics
12.GUI
13.Internationalization I18N
14.Language Basics
15.LINQ
16.Network Remote
17.Reflection
18.Security
19.Thread
20.Windows Presentation Foundation
21.Windows System
22.XML
23.XML LINQ
VB.Net Tutorial
VB.Net by API
VB.Net » Development » EventScreenshots 
Use Delegate to react to an Event
Use Delegate to react to an Event

Imports System
Imports System.Collections

Delegate Sub NameChangedDelegate(ByVal new_name As String)

Public Class MainClass
    
    Shared Sub Main(ByVal args As String())
        Dim student As New Student
        AddHandler student.NameChanged, AddressOf Student_NameChanged
        AddHandler student.NameChanged, AddressOf Student_NameChanged
        student.FirstName = "First Name"
        RemoveHandler student.NameChanged, AddressOf Student_NameChanged
        student.LastName = "Last Name"
        RemoveHandler student.NameChanged, AddressOf Student_NameChanged
    End Sub
    Private WithEvents student As Student

    Shared Private Sub Student_NameChanged(ByVal new_name As StringHandles student.NameChanged
        Console.WriteLine("Student_NameChanged: " & new_name)
    End Sub

    
End Class
  
Public Class Student
    ' The FirstName property.
    Private m_FirstName As String
    Public Property FirstName() As String
        Get
            Return m_FirstName
        End Get
        Set(ByVal value As String)
            m_FirstName = value
            RaiseEvent NameChanged(m_FirstName & " " & m_LastName)
        End Set
    End Property

    ' The LastName property.
    Private m_LastName As String
    Public Property LastName() As String
        Get
            Return m_LastName
        End Get
        Set(ByVal value As String)
            m_LastName = value
            RaiseEvent NameChanged(m_FirstName & " " & m_LastName)
        End Set
    End Property

    ' List to hold the event handler delegates.
    Private m_EventDelegates As New ArrayList

    ' Defines the event handler signature.
    Public Delegate Sub NameChangedDelegate(ByVal new_name As String)

    ' Define the custom NameChanged event.
    Public Custom Event NameChanged As NameChangedDelegate
        AddHandler(ByVal value As NameChangedDelegate)
            Console.WriteLine("AddHandler")
            m_EventDelegates.Add(value)
        End AddHandler

        RemoveHandler(ByVal value As NameChangedDelegate)
            Console.WriteLine("RemoveHandler")
            m_EventDelegates.Remove(value)
        End RemoveHandler

        RaiseEvent(ByVal new_name As String)
            Console.WriteLine("RaiseEvent (" & new_name & ")")
            For Each a_delegate As NameChangedDelegate In m_EventDelegates
                a_delegate(new_name.Replace(" ""+"))
            Next a_delegate
        End RaiseEvent
    End Event
End Class

           
       
Related examples in the same category
1.Define and fire eventDefine and fire event
w_w___w.j_a__v___a_2__s.___co__m__ | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.