我只注意到这一点,因为我错误地尝试将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
答案 0 :(得分:3)
是。处理DragEnter
或DragDrop
时,我们通常会要求或更新其他信息(例如当前拖动效果,活动修改键或所涉及的实际数据)。因此,传递给处理程序的事件参数必须提供对该信息的访问。
另一方面,我们可以(或应该)对DragLeave
做的事情不多。我们不能取消请假。我们无法改变拖动引擎的行为或鼠标指针的形状,因为它是离开,系统告诉我们thank you for your cooperation, we're done now, maybe we'll get in touch with you again in the future
的方式。