2010-03-24 5 views
5

작은 탭이있는 C# 폼을 만들고 각 탭 페이지에 몇 가지 공통된 기능, 특히 확인 단추와 오류 메시지가 있어야하며 특정 탭을위한 공간이 있어야합니다. 양식 필드.C#에서 사용자 지정 TabPage 컨트롤 만들기

다른 누구와도 비슷한 일을했으며 어떻게 접근 했습니까?

+0

각 페이지의 확인 버튼은 무엇입니까? –

+1

제대로 답변하지 못했지만 원래의 tabcontrolpage를 확장하여 필요한 일반 기능을 추가 할 것이라고 생각합니다. – michele

답변

7

TabControl/TabPage를 확장하지 않으면 쉽게 수행 할 수 있습니다.

하나의 UserControl을 정의하고 모든 TabPage에 원하는 공통 요소를 입력하십시오.

양식 : 계속 진행하여 각 TabPage에 대해 원하는 TabPage 컨트롤을 디자인하십시오. UserControl이 추가 된 후에 시각적으로 공용 컨트롤과 겹치지 않도록하십시오. 주 양식의 폼로드 이벤트에서

이 같은 것을 할 :

// form scoped variable to hold a referece to the current UserControl 
    private UserControl1 currentUserControl; 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     foreach(TabPage theTabPage in tabControl1.TabPages) 
     { 
      currentUserControl = new UserControl1(); 

      theTabPage.Margin = new Padding(0); 
      theTabPage.Padding = new Padding(0); 

      theTabPage.Controls.Add(currentUserControl); 

      currentUserControl.Location = new Point(0,0); 

      currentUserControl.Dock = DockStyle.Fill; 

      currentUserControl.SendToBack(); 
     } 
    } 

'SendToBack 정말 여기에 필요하지 않습니다는 "보험"입니다 그와 UserControl을'해도 좋아요 버튼 오류 메시지의 TextBox는 각 TabPage에 할당 된 개별 컨트롤 뒤에 배치됩니다.

+1

누가 다운 투표를했는지 이해하십시오. 왜이 솔루션을 좋아하지 않는지 이해하면 매우 감사하겠습니다. 고마워, – BillW

+0

@ BillW 사실, 어떤 엉덩이는 이것을 스팸으로 표시했다. 이제 이것이 좋은 대답인지는 모르겠지만 스팸이 아닌 것으로 알고 있습니다. 따라서 담당자 손실을 보완하고 답의 순위를 무효화하는 데 도움이되는 +1. –

+0

안녕 BillW, 나는이 해결책을 좋아한다. 컨트롤을 "보는"면에서 디자이너의지지를 잃는다는 것을 알지만 잘된 것 같아요. 감사합니다. –

2

몇 가지 아이디어 :

  • 이 탭 패널을 외부 공용 컨트롤을 유지;
  • TabPage/TabControl 확장
  • 일반 단추로 기본 UserControl을 만들고 기본 단추를 상속 한 usercontrol을 만듭니다. 그런 다음 TabPage 당 하나의 상속 된 usercontrol을 배치합니다.
관련 문제