2009-10-07 9 views
-2

특정 텍스트 상자에 포커스가 있는지 여부를 어떻게 알 수 있습니까? .NET에서 C#으로 작성 중입니다. 성능이 일반적인 솔루션에 문제가 될 수 있기 때문에 다음과 같이개체에 포커스가 있는지 확인하십시오.

+2

C#의 JavaScript는 무엇입니까? – Stu

+0

duplicate : http://stackoverflow.com/questions/483741/how-to-determine-which-html-page-element-has-focus –

+0

'javascript'태그는 실수 일 수 있지만이 태그는 중복되지 않습니다. 위의 질문 IMHO. – RedGlyph

답변

3

는, 내가 지금까지 건너 한 쉬운 일입니다

  1. 당신이 걱정하는 각 컨트롤의 onfocus 및 이벤트에 가입하십시오.
  2. onFocus 핸들러에서 방금 포커스를받은 요소에 전역 변수 (아마 "lastFocusElement")를 설정하십시오.
  3. 특정 컨트롤에 포커스가 있는지 알아야 할 경우 "lastFocusElement"변수와 비교하십시오.
+0

여기 C#에서는 onFocus (및 OnEnter 메서드)가 아니라 실제로 Enter 이벤트가 있습니다. 하지만 그 아이디어는, 나는 보통 집중된 요소를 추적 할 필요가있을 때 그것을한다. 그리고 그것은 잘 동작한다. – RedGlyph

4

자바 스크립트 이벤트 OnFocusOnBlur을 사용해야하고 일종의 변수를 설정해야합니다. 기본적으로 :

<script> 
    var lastFocus=null; 

    function DoesControlHaveFocus(var control){return control==lastFocus;} 
</script> 
<input type="text" onfocus="lastFocus=this" onblur="lastFocus=null"/> 

작업 중 것이다 버전에 대한 코드 숨김, 당신은 당신이 다음 확인 할 수있는 onfocus 및 명령의 컨트롤의 ID에 숨겨진 필드를 설정합니다.

+0

이것이 제 대답 일 것 같아요. 나는 그것을 시험해 볼 기회를 얻지 못했지만 그것이 옳은 것처럼 보인다. +1. – Eric

관련 문제