Code:
 Public Delegate Sub BeginingDelegate()

    Public Sub SingleCall1()
        MsgBox("Delegate 1")
    End Sub

    Public Sub SingleCall2()
        MsgBox("Delegate 2")
    End Sub

    Public Sub SingleCall3()
        MsgBox("Delegate 3")
    End Sub

'USE COMBINE METHOD
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Call1 As BeginingDelegate
        Dim Call2 As BeginingDelegate
        Dim Call3 As BeginingDelegate

        Call1 = AddressOf SingleCall1
        Call2 = New BeginingDelegate(AddressOf SingleCall2)
        Call3 = New BeginingDelegate(AddressOf SingleCall3)
        Dim multiExecution As BeginingDelegate = CType([Delegate].Combine(Call1, Call2, Call3), BeginingDelegate)
        multiExecution.Invoke()
    End Sub

'USE REMOVE METHOD
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Call1 As BeginingDelegate
        Dim Call2 As BeginingDelegate

        Call1 = AddressOf SingleCall1
        Call2 = New BeginingDelegate(AddressOf SingleCall2)

        Dim multiExecution As BeginingDelegate = CType([Delegate].Remove(multiExecution, Call2), BeginingDelegate)
        multiExecution.Invoke()
    End Sub
Combine method is working successfully,But Remove method not working Successfully .Now I want to remove delegate SingleCall2 on Button2_Click,I want that only SingleCall1 and SingleCall3 are invoked. Help in correcting the code.