2008-12-17 37 views
2

是否有任何方法檢查拖放是否正在進行?可以檢查一些方法或win32 api?我知道我可以設置AllowDrop並使用事件,但在這種情況下它不起作用。基本上我想檢查,用代碼,如果任何阻止&下降正在進行中。檢查拖放是否正在進行中

回答

0

GetCapture API function可能是一個好的開始。基本上,當拖動操作開始時,源窗口「捕捉」鼠標,這意味着即使鼠標離開窗口,它仍然會接收所有的鼠標事件。

但是,應用程序也可以捕獲鼠標出於其他原因,所以這不是100%可靠。你可以嘗試一下,看看它對你有多好。並且,通過應用程序自行拖放處理,無論如何都無法確定發生了什麼。

-1

假設它只在您自己的代碼的上下文中,您可以識別代碼中發生拖放的所有位置,並在操作期間將全局布爾標誌設置爲true,然後返回false完成後。

所以接下來的問題是,如何在應用程序中啓動拖放操作?

+1

這永遠不會是一個首選的方法。不得不在整個應用程序中跟蹤各個點的狀態將成爲維護的噩夢。 – 2015-06-17 13:26:08

2

我有一個類似的問題,我自己回答(經過幾個小時的討論),請參閱 - How do I tell if a Drag Drop has ended in Winforms?

基本上,如果你這樣做earwicker建議你需要設置標誌,當拖放開始附近的DoDragDrop調用。如果QueryContinueDragEventArgs指示放置或取消,則需要在DragDrop事件和QueryContinueDrag中取消設置標誌。

相關問題