2011-08-22 7 views
0

VB.NET Windows Forms Project, VS2010.Winforms TextControl with TabControl

나는 여러 탭 페이지가있는 tabcontrol을 가지고 있으며 각 탭 페이지에는 텍스트 상자가 있습니다. 탭을 선택하면 포커스 (및 삽입 지점)가 텍스트 상자의 텍스트 끝에 가야합니다. 각 탭에 다음 코드가있는 쓸데없는 프로젝트를 만들면 정상적으로 작동합니다.

Private Sub TabPage1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabPage1.Enter 
    With TextBox1 
    .SelectionStart = .Text.Length 
    .Select() 
    End With 
End Sub 

그러나 실제 코드에서는 동일한 코드가 작동하지 않습니다. 디버깅에 문제가 있습니다. 중단 점과 IDE를 통해 단계별로 포커스 이벤트가 같은 순서로 실행되지 않기 때문에 문제가 발생합니다. 내가 원하는 결과를 얻거나 디버깅하는 방법에 도움이된다면 가장 큰 도움이 될 것입니다.

답변

0

System.Diagnostics.Debug.Write ("FunctionName : xyz, ActiveControl selected :"& Me.ActiveControl)를 사용하여 이벤트 순서를 인쇄하면 호출 스택 순서와 포커스 이탈을 알 수 있습니다. 또한 IDE에서 디버깅 할 때 이벤트 시퀀스를 재현하는 데 도움이됩니다.

그것은 당신의 탭 이벤트의 대부분의 시작과 끝에서 Debug.Write 문을 넣어 간단합니다,하지만 여기에 관심이 전체 응용 프로그램을 할 수있는 간단한 방법 인 경우 : Aspect Oriented Programming Method Boundary events

내 추측이다 당신의 실제 프로젝트가 수행하는 TabPage1_Enter 다음에 발생하는 이벤트는 자르기 재 작성 프로젝트에 없으며 Debug.Write 출력이 표시 할 텍스트 상자의 포커스를 벗어납니다. HTH

+0

모든 이벤트 처리기에 해당 코드 줄을 삽입한다는 의미입니까? – SSS