有沒有一種簡單的方法來檢測.NET應用程序何時獲得或失去焦點?.NET應用程序失敗並獲得焦點的事件
回答
你正在尋找的事件是Form.Activated和Form.Deactivated
對於WPF,FocusChanged在窗口上。 Winforms中應該有類似的事件。你可以在Visual Studio上找到使用intellisense。
激活/禁用似乎是標準的。
在的WinForms它Activated
處理的Control.GotFocus和Control.LostFocus事件的主要窗口。
用途:
this.LostFocus
和:
this.GotFocus
在最父窗體/窗口
我好奇這種技術如何在各種條件下工作一個MDI應用程序。事實證明,這不適用於所有情況。
如果你的應用程序是一個MDI應用程序,那麼當應用程序本身丟失/重新獲得焦點時(如其他答案中所述),如果MDI表單中的非模態窗體具有焦點,則主MDI表單將失去/獲得焦點。但是,如果模式對話框打開(對應用本身模式),則主MDI表單不會鬆動/獲得焦點(至少激活/停用的事件似乎不會觸發)。換句話說,如果你所處理的只是MDI表單的激活/停用事件,那麼當應用程序失去/獲得焦點時,如果模態表單具有焦點,則可能會錯過。
因此,看起來這個工作,你需要同時處理MDI窗體的激活/停用事件以及模態打開的任何窗體上的事件(通過ShowDialog)。
您還可以通過[檢測哪個應用程序具有焦點] [1]來過濾停用事件,您可以將其放入主窗口的停用處理程序中,模態對話應在退出時返回焦點。 [1] http://stackoverflow.com/questions/2183541/c-detecting-which-application-has-focus – 2012-11-19 17:49:48
- 1. UWP:檢測應用程序獲得/失去焦點
- 2. 當我的應用程序失去焦點並重新獲得焦點時,UI被更新。奇怪的問題
- 3. 如何在iOS應用程序中捕獲失去焦點的事件?
- 4. 重點獲得和焦點丟失事件
- 5. 失去焦點後無法獲得鼠標點擊事件
- 6. WPF應用程序獲取焦點事件
- 7. .NET/Win32 - 檢測屬於另一個應用程序的窗口何時獲得焦點的事件
- 8. c#檢測應用程序的焦點丟失焦點
- 9. Delphi應用程序丟失焦點
- 10. UITextView獲取和丟失焦點事件
- 11. 黑莓應用程序失去焦點,並導致應用程序凍結
- 12. WM_SETFOCUS,獲取剛剛失去焦點的應用程序
- 13. jQuery失去焦點事件
- 14. UITextField失去焦點事件
- 15. Java機器人獲得其他應用程序的焦點
- 16. 重點獲得和焦點丟失Java
- 17. 如果onblur事件驗證失敗,則焦點丟失
- 18. 刪除焦點並獲得焦點在控件上
- 19. 如何獲得模糊事件後的焦點事件?
- 20. 當TEdit或TMemo獲得焦點時,Android應用程序崩潰
- 21. Flash應用程序接收沒有焦點的鼠標事件
- 22. 用戶控件獲得焦點時發現的事件?
- 23. 獲得一個執行失敗的任務 ':應用程序:transformClassesWithJarMergingForDebug'
- 24. Phonegap deviceready事件只在應用程序失去焦點時觸發
- 25. 捕獲我的WPF應用程序中沒有焦點的按鍵事件
- 26. WPF ListViewItem失去焦點事件 - 如何獲取事件?
- 27. JSF - 驗證失敗的焦點組件
- 28. VSTO:應用程序焦點
- 29. 如何獲知非焦點應用程序中的鼠標/鍵盤事件?
- 30. 背景Geolocation ServiceWorker - onMessage當Web應用程序重新獲得焦點時的事件順序
感謝 - 這是我的傾向,但我不知道它是否會工作,因爲該應用程序有一個選項卡式界面。我會檢查它。 – subrama6 2009-05-26 15:30:32