为什么 DragLeave 事件没有使用 DragEventHandler?

3
我之所以注意到这一点,是因为我错误地尝试将DragEventHandler附加到DragLeave事件。我很惊讶地发现,DragLeave事件只是一个普通的EventHandler。这对我来说很奇怪,因为DragDrop事件和DragEnter事件都使用DragEventHandlers。这是否有原因或解释?
资源: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dragleave http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dragenter http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dragdrop
1个回答

3

是的。当处理 DragEnterDragDrop 时,通常需要或更新其他信息(例如当前拖动效果、活动修改键或实际涉及的数据)。因此,传递给处理程序的事件参数必须提供访问该信息的方式。

另一方面,在 DragLeave 上我们不能做太多事情(也不应该这样做)。我们无法取消离开操作,也不能更改拖动引擎的行为或鼠标指针的形状,因为它只是一个“离开”操作,系统告诉我们“感谢您的合作,我们现在完成了,也许将来还会与您联系”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接