2013-05-15 5 views
0

양식에 여러 개의 탭이 있습니다. 각 탭에는 하나의 텍스트 상자가 있습니다. tabpage1을 입력하면 textBox1에 포커스를 설정할 수 있습니다. tabpage1에서 버튼을 누르면 컨트롤러의 임의 탭으로 이동합니다. 지금 원하는 것은 활성 탭 페이지의 textBox에 포커스를 설정하는 것입니다. tabpage_Enter 이벤트를 사용하여 시도했지만 작동하지 않는 것 같습니다. 내 코드는 다음과 같습니다.C#에서 탭 페이지가 변경되면 텍스트 상자에서 다른 페이지로 포커스가 변경됩니까?

private void tabPage2_Enter(object sender, EventArgs e) 
    { 
     textBox2.Select(); 

    } 

제안 사항?

답변

2

나는 당신이 초점 TextBox2를 변경됩니다에게 이벤트를 입력하여, 대신 _Enter의을 TabControl의의 SelectedIndexChanged 이벤트를 사용하는 커서가 tabPage 제어를 입력 할 때마다 필요가 있다고 생각합니다.

+0

감사를 개별 이벤트를 작성하지 않아도이 방법은,이 코드와 함께 일); 휴식; 사례 1 : textBox2.Focus(); 휴식; // } } – Praise

0

Focus() 메서드를 사용하면 텍스트 상자에 포커스를 설정할 수 있습니다. 아마도 tabPage_Enter 이벤트를 설정할 것입니다.

private void tabPage_Enter(object sender, EventArgs e){ 
{ 
    var tab = sender as tabPage; 
    if(!tab.Focused) tab.focus(); 
} 
+0

나는 textBox2.Focus()도 시도했다. 나는 일하지 않을거야. 왜 var tab = sender를 tabPage 등으로 사용해야합니까? – Praise

+0

var tab = sender as tabPage는 tabPage_Enter를 이벤트로 할당 한 모든 탭의 코드를 일반화합니다. tabControl_SelectedIndexChanged (개체 보낸 사람, EventArgs입니다 전자) { 스위치 (tabControl.SelectedIndex) { 경우 0 : textBox1.Focus (각 탭에 대한 – Wusiji