2012-12-26 2 views
1

C#으로 작성된 Windows 양식 응용 프로그램이 있으며 세 개의 탭이 있으며 활성 탭의 수락 단추가 변경됩니다. 마찬가지로 내가 탭 1에있을 때 버튼 _1을 수락 버튼으로하고 싶지만 탭 3에있을 때 button_3을 수락 버튼으로 지정합니다. 이 작업을 수행하는 방법을 알아 내지 못하고 어쩌면 검색에 올바른 용어를 사용하지 않고 있지만 온라인에서 좋은 방법을 찾을 수 없습니다.탭이있는 수락 단추 변경

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

해당되는 경우 답변을 수락하는 것을 잊지 마십시오. –

답변

4

가장 좋은 추측은 탭 컨트롤의 SelectedIndexChanged 이벤트에 연결하고 어떤 탭이 선택되어 있는지에 따라 AcceptButton을 변경하는 것입니다. 의사 코드 :

Form_OnLoad(...) 
{ 
    this.tabControl.SelectedIndexChanged += (s,e) => { 
     TabControl tab = s as TabControl; 
     switch (tab.SelectedIndex){ 
      case 3: 
       this.AcceptButton = this.button_3; 
       break; 
      case 2: 
       this.AcceptButton = this.button_2; 
       break; 
      case 1: 
      default: 
       this.AcceptButton = this.button_1; 
       break; 
     } 
    }; 
} 

또는 무엇인가가 있습니다.

+0

깔끔한 아이디어 +1. 이것은 당신이'AcceptButton'의 텍스트를 바꿀 수있게 해줄 수 있습니다,하지만 저는 이것이 실제로 함수를 바꾸는 것에 대해 실용적이지 않다고 생각합니다. (또한, 당신이'SelectedIndexChanged' 이벤트에 연결하기를 의도했다고 생각합니다.'Selected'는 컨트롤이 클릭 될 때마다 발생합니다.) –

+0

나는 단지 텍스트가 아닌 단추 바인딩을 변경하고 싶다는 인상을 받고있었습니다. 그리고 아마도 당신이 맞을 것입니다. 단순히 탭을 클릭했을 때 인덱스가 바뀌지 않을 때 바인딩하고 싶습니다. –

1

할 수 있습니다 현재 AcceptButton_Click 이벤트 처리기에서 다음 코드를 사용하여 선택한 탭에 따라 다른 일을 수행

if (tabControl1.SelectedTab == tabPage1) 
{ 
    //Do something 
} 
else if (tabControl1.SelectedTab == tabPage2) 
{ 
    //Do something different 
} 

당신이 문자열로 작업하는 것을 선호하는 경우는, 각 탭 페이지는 고유 한 이름을 가지고이 이 귀하의 질문에 대답

switch (tabControl1.SelectedTab.Name) 
{ 
    case "Tab1Name": 
     //Do something 
     break; 
    case "Tab2Name": 
     //Do something different 
     break; 
} 

경우, mark it as the answer to your question하시기 바랍니다.

0

TabControl에는 SelectedIndexChanged 이벤트가 있습니다.

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (tabControl1.SelectedTab == tabControl1.TabPages["RenewalTab"]) 
     { 
      this.AcceptButton = btnRenewal; 
     } 
     else if (tabControl1.SelectedTab == tabControl1.TabPages["SellerTab"]) 
     { 
      this.AcceptButton = btnSeller; 
     } 
    } 
+0

일부 설명은 대답의 질을 상당히 향상시킵니다 – mrun