2013-06-26 2 views
2

이상한 문제가 있습니다. 내 .net win 양식 응용 프로그램이 타사 CRM 응용 프로그램을 트리거합니다. 고객이 CRM 애플리케이션을 사용하고 있고 애플리케이션의 일부 버튼을 클릭하면 첫 번째 클릭에서 버튼이 이벤트를 트리거하지 않으며 두 번째 클릭 만 응답합니다.백그라운드에서 실행중인 .Net winform 응용 프로그램을 자동으로 초점 맞추는 방법

내가 의심하는 이유는 내 애플리케이션에 집중하지 못했기 때문입니다.

다음 코드

private void XXXXX_MouseHover(object sender, EventArgs e) 
    { 
     this.BringToFront(); 
     this.Focus(); 
    } 

과 노력하지만 그 작동하지 않습니다. 나는 .Net을 처음 접했을 때이 문제를 해결하는 방법을 알려줄 수 있습니까?

도움이 매우 감사합니다.

업데이트 : 내 도구 모음 버튼. 응용 프로그램에 포커스가 없을 때

btnbutton.Click += delegate(object sender, EventArgs e) 
     { 
      //some code to execute on button click. 

     }; 

감사

+0

귀하의 양식과 CRM 응용 프로그램 UI 사이의 관계를 실제로 얻지는 못했지만 스크린 샷이 도움이 될 것이라고 생각합니다. –

+0

@ 킹 킹 (King King)은 CRM URL을 트리거하는 것과 별개로 CRM과 관련이 없습니다. 나는 내 질문을 업데이트했다. – AKV

+0

기본 UI가 무엇입니까? 귀하의 양식 또는 기타? –

답변

5

닷넷 도구 스트립 클릭을 무시합니다. 이것은 단어의 작동 방식과 같습니다. 여기서 아이디어는 사용자가 실제로 작업을 수행 할 것을 염려 할 필요없이 윈도우의 "아무 데나"를 클릭 할 수 있다는 것입니다. 창에 포커스가있을 때만 "카운트"를 클릭하십시오.

http://blogs.msdn.com/b/rickbrew/archive/2006/01/09/511003.aspx의 게시물은이 문제를 해결하는 방법을 설명합니다. 기본적으로 ToolStrip에서 상속 받고 WndProc을 무시하고 WM_MOUSEACTIVATEMA_ACTIVATEANDEAT 결과로 변경하면 MA_ACTIVATE이됩니다.

+0

이 문제는 .net V2 또는 모든 .Net 프레임 워크 버전에서만 발생합니다. – AKV

+2

프레임 워크의 모든 버전에서이 동작을 보여줍니다. –

+1

확실히 마우스 오버시 초점을 맞추려면 * 대신 * 수행하십시오. 또는 마우스 오버에 초점을 맞추려면 [해당 시스템 설정]을 사용하십시오 (http://www.howtogeek.com/howto/windows-vista/switch-windows-by-hovering-the-mouse- Windows-over-a-window-in-windows-vista /)를 사용하는 것은 너무 혼란 스럽습니다. –

관련 문제