2016-11-17 1 views
0

사용자가 다중 창 응용 프로그램 (예 : alt + tab)에서 포커스를 변경하는 방법을 감지합니다.활성/포커스가 설정된 응용 프로그램 창이 없을 때 감지

앱 창이 활성/포커스가없는 경우를 감지하고 싶습니다.

첫 번째 창이 항상 표시되지만 사용자는 최대 4 개의 창 (이 중 아무 것도 대화 상자로 표시되지 않음)으로 작업 할 수 있습니다.

+0

@Hank 사용자가 어떤 창을 남겼는지 확인하는 방법을 알고 싶습니다. 비활성화 된 이벤트가 단일 창에 적용됩니다. 사용자가 1st 창에서 2nd 창으로 전환했는지 아니면 1st에서 다른 응용 프로그램으로 전환했는지 어떻게 확인할 수 있습니까? – Iluvatar

+0

@Iluvatar 귀하의 정확한 요청과 귀하가 사용하고자하는 상황에 대한 설명을 첨부하여 OP를 업데이트하십시오. 그런 식으로 접근하는 방법에 대해 정확하게 조언 할 수 있습니다. – Hank

+0

언제 통보 받고 싶습니까? 이벤트를 찾고 계시지, 또는 코드의 일부를 확인하여 양식이 활성화되어 있는지 확인하고 싶습니까? 더 자세히 설명해 주시겠습니까? –

답변

1

Form은 폼 또는 해당 자식 컨트롤 중 하나에 입력 포커스가 있는지 여부를 나타내는 ContainsFocus 속성을가집니다. 당신이 사용할 수

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

당신은 시간의 작은 기간에 응용 프로그램의 상태를 통지 할 경우 : 응용 프로그램의 초점이 아닌지 포함 된 경우를 감지하는 열려있는 모든 형태의이 속성을 확인할 수 있습니다 Tick 이벤트는 Timer입니다.

+0

에 메시지를 보내면 애플리케이션이나 사용자가 유휴 상태가 아닙니다. 응용 프로그램에 포커스가있는 경우 표시됩니다. –

+0

그게 바로 내가 달성하기를 원하는 것입니다. 고마워요 @RezaAghaei – Iluvatar

+0

대단해! 천만에요 :) –

관련 문제