2016-11-17 32 views
0

用戶如何從多窗口應用程序更改焦點(例如,alt +選項卡)時檢測到。當沒有應用程序窗口處於活動/聚焦狀態時檢測到

我想要檢測什麼時候應用程序窗口沒有活動/聚焦。

總是顯示第一個窗口,但用戶最多可以使用四個窗口(這些窗口均不顯示爲對話框)。

+0

@Hank我想知道如何確定用戶是否離開任何窗口;取消激活的事件適用於單個窗口,我如何檢查用戶是從第一窗口切換到第二窗口還是從第一窗口切換到其他應用程序? – Iluvatar

+0

@Ivvatar請根據您的確切要求更新OP,並說明您希望使用它的情況。這樣我們可以準確地建議如何處理它。 – Hank

+0

你想知道什麼時候?你正在尋找一個事件,或只是想檢查它的代碼的一部分,看看是否有任何形式活躍?你能詳細解釋一下嗎? –

回答

1

Form有一個ContainsFocus屬性,指示窗體或其子控件之一是否具有輸入焦點。您可以檢查此屬性對所有打開的窗體來檢測,如果應用程序包含焦點與否:

var isActive = Application.OpenForms.Cast<Form>().Any(x=>x.ContainsFocus); 

如果你想在小的時間段期間要通知的應用程序的狀態,你可以用它Tick事件Timer

+0

這並不意味着應用程序或用戶不是空閒的。它只是顯示你是否應用程序包含焦點。 –

+0

這正是我想要實現的。謝謝@RezaAghaei – Iluvatar

+0

太棒了!別客氣 :) –

相關問題