2012-11-26 4 views
0

TextBox1.GotFocus 이벤트 함수의 첫 번째 줄에 중단 점이 있습니다.SetFocus를 호출 할 때 GotFocus가 실행되지 않는 이유는 무엇입니까?

TextBox1.SetFocus을 다른 곳으로 호출하면 GotFocus 중단 점에 절대로 도달하지 않습니다. 왜? 전화 기능에

코드 : Text1.SetFocus

Private Sub Text1_GotFocus() 

    // code here 

End Sub 
+0

어쩌면 텍스트 상자에 이미 포커스가 있습니까? (gotfocus 이벤트의 코드를 게시하고 setfocus가 호출 된 곳에서 setfocus 호출에 중단 점을 설정하여 실제로 호출되는지 확인하십시오. – Hrqls

+0

편집 참조). 나는 코드를 통해 setfocus 호출이 수행되고 있음을 확인했다. 그것은 gotfocus에 가지 않고 다음 줄로 똑바로 나아 간다. – CJ7

+0

text1에 아직 포커스가 없습니까? 텍스트 1로 설정하기 전에 먼저 포커스를 다른 것으로 설정하십시오. – Hrqls

답변

0

약간의 프로그램이 무슨 뜻인지 보여.

프로그램을 실행하고 폼을 클릭 (캡션 남아 1)

다음 Text2.SetFocus 동안 동일한 작업을 수행, 그에게 포커스를 텍스트 2를 클릭하고 다시 (2 캡션 변경) 양식을 클릭 당신이 양식 아무것도 때문에 변경되지 클릭하면

'1 form with 
' textbox : name=Text1 tabindex=0 
' textbox : name=Text2 tabindex=1 
Option Explicit 

Private Sub Form_Click() 
    'uncomment the following line to make it work 
' Text2.SetFocus 
    'with just the following call this wont work 
    Text1.SetFocus 
End Sub 

Private Sub Text1_GotFocus() 
    'increase the number in the form caption to show text1 got the focus again 
    Caption = CStr(Val(Caption) + 1) 
End Sub 

프로그램이 텍스트 1에 포커스 (의 tabindex = 0) 도착 시작되므로 1 폼 캡션 변경 : 여기

의 Form_Click

에 주석 처리되어 코드입니다 텍스트 1은 이미 h입니다. Text2를 처음 클릭 한 다음 폼 캡션이 증가하는 폼을 클릭하면 을 가져올 수 없습니다. Text2.SetFocus를 사용하여 줄의 주석을 제거하여 폼 캡션이 증가하는 폼을 클릭하면

텍스트가 포커스를 Text2 아직 Text1에 포커스를 이동하기 전에 Text1이 항상 포커스를 새로 가져옵니다.

그래도 조심해야합니다! 다른 컨트롤에 초점을두면 처음에는 원하지 않는 새로운 이벤트를 생성 할 수 있습니다!