2009-07-05 5 views
10

Visual Studio C#에서 동적 탭 수를 사용하여 탭 컨트롤을 만드는 방법은 무엇입니까?Visual Studio C#에서 동적 탭 수가있는 탭 컨트롤 만들기

테이블이 customers 인 데이터베이스가 있습니다. 고객의 성의 첫 글자로 탭을 표시하는 양식을 만들어야합니다 (표의 항목이 있어야하는 첫 글자 만). 각 탭에는 해당 고객과의 DataGrid 컨트롤이 있어야합니다. DataSet을 사용하여 데이터베이스에 연결합니다.

이러한 탭을 생성하는 코드 스 니펫은 어디에 삽입해야합니까? 기존 탭 컨트롤로 할 수 있습니까 또는 사용자 지정 컨트롤을 만들어야합니까?

답변

16

기존 탭 컨트롤을 사용하여 동적 탭을 생성 할 수 있습니다. 여기에 어떤 종류의 의사 코드 형태로 어떻게 수행 할 수 있는지 보여주는 예가 있습니다 ...

TabControl tabControl = new TabControl(); 
tabControl.Dock = DockStyle.Fill; 

foreach (Char c in lastNameList) 
{ 
    TabPage tabPage = new TabPage(); 
    tabPage.Text = c.ToString(); 

    DataGrid grid = new DataGrid(); 

    grid.Dock = DockStyle.Fill; 
    grid.DataSource = dataForTheCurrentLoop; 

    tabPage.Controls.Add(grid); 
    tabControl.Controls.Add(tabPage); 
} 

this.Controls.Add(tabControl); 
0

자신 만의 탭 컨트롤 클래스를 만드는 것이 가장 좋은 방법이라고 할 수 있습니다. 탭 컨트롤에서 DataGrid의 기능 및 속성 대부분을 필요로하는 기타 사용자 지정 사항을 상속받을 수 있습니다. 그런 다음 고객을 확보 할 때 필요한 각 문자에 대한 탭을 만들고 해당 속성을 설정할 수 있습니다.

2

데이터를 검색 할 때 또는 양식의 OnLoad() 메서드에서 어떤 문자를 표시해야하는지 결정할 때 탭을 생성하는 코드를 추가해야합니다. 내장 탭 컨트롤에서 탭을 동적으로 추가/제거 할 수 있어야합니다. 디자이너 코드에서이를 수행하는 방법이나 문서를 확인할 수 있습니다.

각 문자에 대해 별도의 탭을 추가하는 것은 반드시 좋은 생각은 아닙니다. 26 개의 탭 (데이터베이스가 합리적으로 커지면 발생합니다)은 누군가가 살펴볼 수있는 매우 끔찍한 수의 탭입니다.

대신 Vista의 시작 메뉴에있는 검색 창과 유사한 동적 필터링 메커니즘을 제공하는 것이 좋습니다. 사용자는 단일 문자를 입력 할 수 있으며 (키오스크 또는 터치 스크린 전용 소프트웨어를 작성하지 않는다고 가정) 관련 이름으로 즉시 확대 할 수 있습니다. 목록 또는 세부 정보 모드에서 ListView으로 이상적으로 작동합니다.

1

지금은 구체적인 내용을 기억하지 못합니다. 그러나 XXX.designer.cs 파일의 코드에서 탭 컨트롤이 포함 된 양식을 살펴보십시오. 새 탭을 추가하기 위해 생성 된 코드가 표시됩니다. 해당 라인을 복사하기 만하면 언제든지 새 탭을 추가 할 수 있습니다.