簡體   English   中英

有沒有辦法以無響應的形式捕獲 keydown 事件

[英]Is There a way to capture a keydown event in an unresponsive form

我有一個表單,它有一個在其中運行的耗時方法。 我想在運行時通過按鍵取消該方法,但是由於某些限制,我無法將該方法轉換為任務或任何異步操作。

場景是,用戶按下一個按鈕,該按鈕調用該方法(假設它運行了一段時間(x > y) ),這需要一些時間,如果用戶按下 esc 鍵,我想中斷該方法。

如何捕獲無響應表單的按鍵? 由於 while 方法阻止了表單,因此表單的按鍵方法沒有響應。

您可以嘗試從耗時的方法中調用Application.DoEvents ,但這也將處理所有類型的消息,包括嘗試關閉表單等危險消息。

如果您可以重新編寫代碼並將我們長時間運行的方法放在BackgroundWorker那就更好了。

正如您所說,它沒有響應,將無法捕獲輸入。 相反,您可以實現一個后台線程在那里完成您的工作,因此您可以根據需要取消線程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM