2016-11-17 5 views
0

ユーザーがマルチウィンドウアプリケーション(alt + tabなど)からフォーカスを変更したときの検出方法。アクティブ/フォーカスされているアプリケーションウィンドウがない場合の検出

アプリケーションウィンドウがアクティブ/フォーカスされていないときを検出します。

最初のウィンドウは常に表示されますが、最大4つのウィンドウで作業できます(いずれもダイアログとして表示されません)。

+0

@ハンクユーザーがウィンドウを離れたかどうかを判断する方法を知りたい。非アクティブ化イベントはシングルウィンドウに適用されます。ユーザーが第1ウィンドウから第2ウィンドウに切り替わったかどうか、または第1ウィンドウから第2ウィンドウに切り替わったかどうかをどのように確認できますか? – Iluvatar

+0

@Iluvatar正確なリクエストとそれを使用したい状況の記述をOPに更新してください。そうすれば、私たちはそれにどのように接近するかについて正確にアドバイスすることができます。 – Hank

+0

いつ通知を受けたいですか?イベントを探しているのですか、コードの一部でチェックして、フォームがアクティブかどうかを確認したいのですか?もっと詳しく説明できますか? –

答えて

1

Formには、フォームまたはその子コントロールの1つに入力フォーカスがあるかどうかを示すプロパティがあります。あなたは、アプリケーションがフォーカスをか含まれているかどうかを検出するために、すべての開いているフォームのために、このプロパティをチェックすることができます。

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

あなたが時間の小さな期間中にアプリケーションの状態を通知する場合は、あなたがそれを使用することができますTickのイベントはTimerです。

+0

アプリケーションまたはユーザがアイドル状態でないことを意味するものではありません。アプリケーションにフォーカスが含まれている場合に表示されます。 –

+0

これはまさに私が達成したかったものです。ありがとう@RezaAghaei – Iluvatar

+0

素晴らしい!どういたしまして :) –

関連する問題