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.Development
8.Event
9.File Directory
10.Generics
11.GUI
12.Language Basics
13.LINQ
14.Network Remote
15.Security
16.Thread
17.Windows Presentation Foundation
18.Windows System
19.XML
20.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
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.