在我的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
事件时永远不会被调用。我错过了什么吗?
答案 0 :(得分:0)
非常糟糕......我使用了错误的签名,但没有告诉我我错了。
我找到了解决方案here。我使用DragEventArgs
代替EventArgs
作为e
的类型。更改类型后,它会像预期的那样工作。