2016-08-05 5 views
1

から作成されたオブジェクトのイベントを削除する私は「のAddressOf」オペランドが(括弧なし)メソッドの名前でなければなりませんfollwingエラーメッセージどのようにコントロールコレクション

を持って

次のことをしようとしたときコード:

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 

答えて

1

はあなたが削除することはできませんイベント

RemoveHandler xbutton.MouseDown, AddressOf xbutton.MouseDown 

AddressOfメソッドの名前が必要ですが、xbutton.MouseDownはイベントの名前です。

あなたはEventHandlerの_MouseDownがコントロールにものだけを追加したことを確認したい場合は、

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

感謝の今、私は理解して追加する前に、必ずそれを削除 – EvilacSon

関連する問題