2010-05-06 2 views
2

나는 윈도우 폼에 텍스트 박스를 가지고있다. 현재 초점은 텍스트 상자에 있으며 일부 텍스트를 입력합니다. 이제 텍스트 상자 바깥 쪽을 클릭합니다. 이 작업은 텍스트 상자에 포커스를 잃게하지 않습니다. 커서는 여전히 텍스트 상자에서 깜박입니다. 클릭이 다른 컨트롤에 있으면 텍스트 상자가 컨트롤을 잃을 것입니다.외부에서 클릭했을 때 텍스트 상자에서 제어권을 잃는 방법

텍스트 상자를 컨트롤 외부에서 클릭했을 때 (다른 컨트롤뿐만 아니라 폼 안 어디서나) 클릭하면 어떻게 될까요?

미리 감사드립니다.

Datte

답변

4

당신이 (형태, 라벨, 등 등) 초점을 복용 아무 능력이없는 컨트롤을 클릭 때문이다. 예를 들어 다른 텍스트 상자에서 클릭하면 포커스가 이동해야합니다.

프로그래밍 방식으로 (즉, 폼의 OnClick 이벤트에서) 포커스를 이동하려면 control.Focus 메서드를 사용하십시오.

+0

Control.CanFocus 속성 설명서를 참조하십시오. http://msdn.microsoft.com/en-us/library/system.windows.forms.control.canfocus(v=VS.100).aspx – munissor

+0

이것은입니다. 나를 위해 일하지 않아. Form.CanFocus는 true를 반환합니다. OnClick 또는 MouseClick 이벤트에서 명시 적으로 this.Focus() [심지어 시도한 this.Select()], 포커스가 여전히 텍스트 상자에 씁니다. 다른 해결책이 있습니까? – dattebayo

+0

양식에 중점을 두는 것은 의미가 없습니다. 어쩌면 텍스트 상자가 양식의 유일한 컨트롤일까요? 또는 그것은 폼 내에서 가장 낮은 TabIndex를 가집니까? 또 다른 가능성은 텍스트 상자의 유효성 검사 이벤트가 있고 유효성 검사가 실패하여 텍스트 상자가 포커스를 잃지 않을 수 있다는 것입니다. – munissor

관련 문제