DragLeave不会被调用

时间:2017-08-16 12:44:15

标签: vb.net drag-and-drop

在我的VB.Net应用程序中,我尝试拖放自定义控件。它应该可以删除到同一个类的另一个实例上。所以这是我使用的代码:

Private Sub HandleMouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseDown
    Me.DoDragDrop(Me, DragDropEffects.Copy)
End Sub

Private Sub HandleDragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles Me.DragEnter
    e.Effect = If(checkDropData(e), DragDropEffects.Copy, DragDropEffects.None)
End Sub

Private Sub HandleDragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles Me.DragDrop
    addControl(e.Data.GetData(GetType(MyControl)))
End Sub

Private Sub HandleDragLeave(ByVal sender As Object, ByVal e As DragEventArgs) Handles Me.DragLeave
    Console.WriteLine("HandleDragLeave: " & sender.ToString)
End Sub

我可以删除控件,但拖动DragLeave事件时永远不会被调用。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

非常糟糕......我使用了错误的签名,但没有告诉我我错了。

我找到了解决方案here。我使用DragEventArgs代替EventArgs作为e的类型。更改类型后,它会像预期的那样工作。