2012-06-08 74 views
2

我只注意到這一點,因爲我錯誤地試圖將DragEventHandler附加到DragLeave事件。我很驚訝地發現DragLeave事件只是一個普通的EventHandler。這對我來說很奇怪,因爲DragDrop事件和DragEnter事件都使用DragEventHandlers。這是否有理由或解釋?爲什麼DragLeave事件不使用DragEventHandler?

資源:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dragleavehttp://msdn.microsoft.com/en-us/library/system.windows.forms.control.dragenterhttp://msdn.microsoft.com/en-us/library/system.windows.forms.control.dragdrop

回答

3

是。處理DragEnterDragDrop時,我們通常會要求或更新其他信息(例如當前拖動效果,活動修改鍵或所涉及的實際數據)。因此,傳遞給處理程序的事件參數必須提供對該信息的訪問權限。

另一方面,我們可以(或應該)在DragLeave上做的不多。我們不能取消休假。我們不能改變拖動引擎的行爲或鼠標指針的形狀,因爲它是離開,系統告訴我們thank you for your cooperation, we're done now, maybe we'll get in touch with you again in the future的方式。

相關問題