폼에 여러 개의 입력 컨트롤이있는 WinForm 응용 프로그램이 있습니다. 유효성 검사 이벤트 처리기 (Validating
또는 Validated
)에서 유효성이 검사 된 값을 기준으로 다음에 활성화 할 컨트롤을 결정해야합니다..NET에서 유효성 검사 후 컨트롤에 포커스를 설정하는 방법
Validating 이벤트의 마이크로 소프트의 문서에서는 상태 :
주의
입력,의 GotFocus가,두고 LostFocus, 검증 내에서 포커스를 설정하려고, 또는 검증 된 이벤트 핸들러하지 마십시오. 그렇게하면 응용 프로그램이나 운영 체제가 응답을 중지 할 수 있습니다. 자세한 내용은 "키보드 입력 참조"절의 WM_KILLFOCUS 항목과 MSDN 라이브러리의 "메시지 및 메시지 큐 정보"항목의 "메시지 교착 상태"절 (http : // msdn.microsoft.com/library)을 참조하십시오. .
활성 상태가 될 컨트롤을 설정하고 제한이 언급되지 않은 Form 클래스의 속성은 ActiveControl
입니다. 몇 시간 동안 웹 검색을 한 후에도 다른 해결책을 찾지 못했습니다.
Validate 이벤트 처리기에서 Focus
대신 ActiveControl
속성을 설정하면 원하는 컨트롤을 적극적으로 활성화 할 수있는 안전한 방법입니까? 그렇지 않다면 해결책이 있습니까?
.NET Compact Framework에는 ActiveControl
속성이 없으므로 누구나 솔루션을 제안 할 수 있습니까?
와우, 영리한 대답! Delegate.BeginInvoke()와 Control.BeginInvoke() 사이의 차이점을 알기 전에는 위임 된 메서드가 EndInvoke()를 호출해야한다고 생각했습니다. \t [.net - Invoke()와 BeginInvoke의 차이점] [1] [1] http://stackoverflow.com/questions/229554/whats-the-difference-between-invoke-and-begininvoke – Suncat2000