Quantcast
Viewing all articles
Browse latest Browse all 12583

How do I terminate the instance of an AddHandler when its finished processing the event?

I have created and attached an AddHandler to a Button.Click event. When the button.click event starts, I can't get out of it, because it does the same actions over and over.  The only way I can stop it is to cancel the debug session.  When I reach the End Sub statement in the LoadAndShowButtonItems, I expect to return to the form and make another selection which might be a button or some other control. Code follows:
    Private Function AttachAddHandlerForButtonInMeControls(ByVal btnName As String) _
                                                                         As Boolean
        button = New Button
        For Each buttonFound As Button In Me.Controls.OfType(Of Button)()
            If Convert.ToString(buttonFound.Name) = btnName Then
                button = buttonFound
                button.Visible = True
                AddHandler button.Click, New EventHandler(AddressOf LoadAndShowButtonItems)

	'	AddHandler button.Click, AddressOf LoadAndShowButtonItems
	'	Have run with either AddHandler and get the same result either way.

                Return True
                Exit Function
            End If
        Next
        Return False
    End Function

 
    Private Sub LoadAndShowButtonItems(ByVal sender As Object, _
                                       ByVal e As System.EventArgs)
        Dim buttonName = New Button()
        buttonName = CType(sender, Windows.Forms.Button)
        md_Idx = CInt(Microsoft.VisualBasic.Right(buttonName.Name, 2))

        ' Selects the Item to process
        Dim newDiaDayItemSelect As New diaDayItemSelect
        newDiaDayItemSelect.dateWanted = dateArray(md_Idx, 0)
        newDiaDayItemSelect.ShowDialog()

        ' Selects the type of action wanted for the above selected item and places
        ' the action wanted in frmCalMonthAction which is in a module.
        Dim newdiaCboGetAction As New diaCboGetAction
        newdiaCboGetAction.ShowDialog()

        ' Does the froCalMonthAction on the item which is: copy, add, edit, delete or view
        Dim newDiaCalEvent As New diaCalEvent
        newDiaCalEvent.itemDateFromCalMonth = itemReturn.ItemDate
        newDiaCalEvent.itemKeyFromCalMonth = itemReturn.KeyItem
        newDiaCalEvent.itemAction = frmCalMonthAction
        newDiaCalEvent.ShowDialog()
        FinishProcessingButtonEvent(buttonName)
    End Sub

    Private Sub FinishProcessingButtonEvent(ByRef buttonName As Button)
        If frmCalMonthAction = "view" Then
            Exit Sub
        End If

        If frmCalMonthAction = "delete" Then
            nameOfButton(md_Idx, 0) -= 1
            If nameOfButton(md_Idx, 0) < 0 Then
                buttonName.Visible = False
                Me.Refresh()
                Exit Sub
            Else
                Exit Sub
            End If
        End If

        
        'Assumed frmCalMonthAction = "copy" and if date range not met, it's not on the
        '               frmCalMonth, so exit sub.
        If itemReturn.ItemDate < startDateToRetrieve _
                    Or itemReturn.ItemDate > finalDateToRetrieve Then
            Exit Sub
        End If
        InsertItemInCalendarDateControl(itemReturn)
        Me.Refresh()
    End Sub


Terry 01



Viewing all articles
Browse latest Browse all 12583

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>