2016-08-05 6 views
1

ich habe die follwing Fehlermeldungwie Ereignis des Objekts aus Steuer Sammlung erstellt entfernen

‚AddressOf‘ Operand muss der Name einer Methode (ohne Klammern)

beim Versuch, den folgenden Code:

Private Sub Button1_Click(ByVal sender As System.Object, 
          ByVal e As System.EventArgs) Handles Button1.Click 
    Dim xbutton As Control 

    For Each xbutton In gcFRightMenu.Controls 
     If xbutton.Name = commandbutton(0) Then 

      RemoveHandler xbutton.MouseDown, AddressOf xbutton.MouseDown 

      AddHandler xbutton.MouseDown, AddressOf _MouseDown 

     End If 
    Next 
End Sub 


Private Sub _MouseDown(ByVal sender As Object, 
         ByVal e As System.Windows.Forms.MouseEventArgs) 
    If e.Button = Windows.Forms.MouseButtons.Left Then SendKeys.Send("{ESC}") 
End Sub 

Antwort

1

Sie nicht Ereignis

entfernen 0

AddressOf erwartet einen Namen der Methode, aber xbutton.MouseDown ist Name eines Ereignisses.

Wenn Sie sicher sein wollen, dass Eventhandler _MouseDown Einzigen, die an die Steuerung hinzugefügt, entfernen Sie es dann immer vor dem Hinzufügen

For Each xbutton In gcFRightMenu.Controls 
    If xbutton.Name = commandbutton(0) Then 

     RemoveHandler xbutton.MouseDown, AddressOf _MouseDown 

     AddHandler xbutton.MouseDown, AddressOf _MouseDown 

    End If 
Next 
+0

Dankten jetzt verstehe ich, – EvilacSon