Home
Manage Your Code
Snippet: AddHandler (VB.NET)
Title: AddHandler Language: VB.NET
Description: Using a AddHandler to raise an event - see the ClickOnceEquipmentRental program on the MultiChecking form. cmdChangeDaysOut_Click event raises a form to change the date and then Enter returns to the MultiCheckin form. Views: 347
Author: Tom Baggett Date Added: 6/15/2012
Copy Code  
1 Private Sub MultipleCheckin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
2        txtCheckInDate.Text = Date.Today.ToString("d")
3        txtCheckInDate.Focus()
4        rentals.Clear()
5        totals.Clear()
6        display.Clear()
7        pnl_CheckIn.Hide()
8        pnl_Order.Hide()
9        AddHandler EnterCheckinDate.CheckinDateEntered, AddressOf Me.CheckinDateEntered
10        AddHandler ChangeCheckoutDate.ChangeCheckoutDateEntered, AddressOf Me.ChangeCheckoutDateEntered
11        AddHandler ChangeCheckinDate.ChangeCheckinDateEntered, AddressOf Me.ChangeCheckinDateEntered
12        AddHandler ChangeSearchCriteria.Changesearch, AddressOf Me.ChangeSearch
13        AddHandler ChangeShipTo.ChangeAddressEntered, AddressOf Me.ChangeAddressEntered
14        AddHandler ctrlFindForm.ControlfindEntered, AddressOf Me.ControlFindEntered
15end sub
16
17
18    Private Sub cmdChangeDaysOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdChangeDaysOut.Click
19        _Yes = MsgBox("Caution this will change ALL the rental items timeout days. Are you sure?", MsgBoxStyle.YesNoCancel)
20        If _Yes <> MsgBoxResult.Yes Then Exit Sub
21        ChangeCheckoutDate.ShowDialog()
22    End Sub
23
24'********** the next lines are the class of the form raised on the button click.
25Public Class ChangeCheckoutDate
26    Delegate Sub ChangeCheckoutDateEnteredHandler(ByVal e As changeCheckoutDateEventArgs)
27    Public Event ChangeCheckoutDateEntered As ChangeCheckoutDateEnteredHandler
28    Private Sub ChangeCheckoutDate_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
29
30    End Sub
31    Private Sub cmd_Enter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Enter.Click
32        Try
33            Dim dt As DateTime
34            dt = CType(txt_CheckoutDate.Text, DateTime)
35            RaiseEvent ChangeCheckoutDateEntered(New changeCheckoutDateEventArgs(dt))
36            Me.Close()
37        Catch ex As Exception
38            MsgBox(ex.Message)
39        End Try
40
41    End Sub
42
43    Public Class changeCheckoutDateEventArgs
44        Inherits System.EventArgs
45
46        Private _DateEntered As DateTime
47        Public Property DateEntered() As DateTime
48            Get
49                Return Me._DateEntered
50            End Get
51            Set(ByVal value As DateTime)
52                Me._DateEntered = value
53            End Set
54        End Property
55        Sub New()
56            MyBase.New()
57        End Sub
58        Sub New(ByVal dateEntered As DateTime)
59            MyBase.New()
60            Me._DateEntered = dateEntered
61        End Sub
62    End Class
63    Private Sub ToPicker_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToPicker.ValueChanged
64        Dim _from As Date = ToPicker.Text
65        txt_CheckoutDate.Text = _from
66    End Sub
67    Private Sub ChangeCheckoutDate_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
68        If txt_CheckoutDate.Text = "" Then
69            txt_CheckoutDate.Text = Date.Today.ToString("d")
70        End If
71
72    End Sub
73End Class
Usage
 Private Sub MultipleCheckin_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        RemoveHandler EnterCheckinDate.CheckinDateEntered, AddressOf Me.CheckinDateEntered
        RemoveHandler ChangeCheckoutDate.ChangeCheckoutDateEntered, AddressOf Me.ChangeCheckoutDateEntered
        RemoveHandler ChangeCheckinDate.ChangeCheckinDateEntered, AddressOf Me.ChangeCheckinDateEntered
        RemoveHandler ChangeSearchCriteria.Changesearch, AddressOf Me.ChangeSearch
        RemoveHandler ctrlFindForm.ControlfindEntered, AddressOf Me.ControlFindEntered
        RemoveHandler ChangeShipTo.ChangeAddressEntered, AddressOf Me.ChangeAddressEntered
        If isNewRental = True Then
            If availables Is Nothing Then
            Else
                availables.Clear()
                availables = GetAvailables()
            End If

        End If
    End Sub