Custom event handler : Event « Event « VB.Net Tutorial

Home
VB.Net Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statements
5.Date Time
6.Class Module
7.Development
8.Collections
9.Generics
10.Attributes
11.Event
12.LINQ
13.Stream File
14.GUI
15.GUI Applications
16.Windows Presentation Foundation
17.2D Graphics
18.I18N Internationlization
19.Reflection
20.Regular Expressions
21.Security
22.Socket Network
23.Thread
24.Windows
25.XML
26.Database ADO.net
27.Design Patterns
VB.Net
VB.Net by API
VB.Net Tutorial » Event » Event 
11.1.6.Custom event handler
Imports System.Collections
Delegate Sub NameChangedDelegate(ByVal new_name As String)

public class Test
   Private WithEvents emp As Employee
   public Shared Sub Main

        Dim emp As New Employee
        AddHandler emp.NameChanged, AddressOf Employee_NameChanged
        AddHandler emp.NameChanged, AddressOf Employee_NameChanged
        emp.FirstName = "Rod"
        RemoveHandler emp.NameChanged, AddressOf Employee_NameChanged
        emp.LastName = "Stephens"
        RemoveHandler emp.NameChanged, AddressOf Employee_NameChanged

   End Sub

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

End class

Public Class Employee
    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

    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

    Private m_EventDelegates As New ArrayList

    Public Delegate Sub NameChangedDelegate(ByVal new_name As String)

    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
AddHandler
AddHandler
RaiseEvent (Rod )
Employee_NameChanged: Rod+
Employee_NameChanged: Rod+
RemoveHandler
RaiseEvent (Rod Stephens)
Employee_NameChanged: Rod+Stephens
RemoveHandler
11.1.Event
11.1.1.Raise Events
11.1.2.Multiple Event Handler
11.1.3.Event handler
11.1.4.Subclass EventArgs to create your own event arguments
11.1.5.Inherit Event
11.1.6.Custom event handler
11.1.7.WithEvents and Event method
11.1.8.Add and remove event handlerAdd and remove event handler
11.1.9.Handle events from more than one componentsHandle events from more than one components
11.1.10.Add, remove event handler to/from ToggleButtonAdd, remove event handler to/from ToggleButton
11.1.11.Use one method to handle more than one RadioButton click eventUse one method to handle more than one RadioButton click event
11.1.12.Get event sender typeGet event sender type
11.1.13.Instantiating the Action<(Of <(T>)>) delegate rather than explicitly defining a new delegate and assigning a named method
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.