2014-01-25 5 views
1

ListView과 같은 여러 컨트롤을 처리 할 추상 메서드가 필요합니다.다중 인스턴스/다중 탭 메서드

이제 이와 비슷한 것이 있습니다. 나는에 Panel1, panel2, 패널 3, panel4 등을위한 기능의 모든 패널을 쓸 필요

private void ListDir(string path, int panel_number) 
{ 
    foreach (string dir in ListDirectories(@path)) 
      { 
       ListViewItem li = new ListViewItem(dir); 
       switch (panel_number) 
       { 
        case 1: 
          panel1.Items.Add(li); 
          break; 
        case 2: 
          panel2.Items.Add(li); 
          break; 
        case 2: 
          panel3.Items.Add(li); 
          break; 
      } 
} 

그러나 나는이 같은 동일한 컨트롤을 여러 탭을 위해 그것을 필요로이 기능이 더 추상적 확인해야합니다. 사용자는 x 개의 새로운 탭을 만들 수 있으며 스위치의 경우이를 처리 할 수 ​​없습니다.

그냥 내 목표는 명확합니다 :

private void ListDir(string path, int panel_number) 
{ 
    foreach (string dir in ListDirectories(@path)) 
      { 
       ListViewItem li = new ListViewItem(dir); 
       panel[panel_number].Items.Add(li); 
      } 
} 
+3

패널 목록을 사용하십시오. '리스트 ' –

답변

0

이 같은 패널의 목록 멤버 필드를 만들 경우에만 게시물의 두 번째 코드 부분은 작동합니다

private List<Panel> panel = new List<Panel>(); 

패널을 만들 때 (예 : onLoad에서 패널 목록에 추가)

panel.AddRange(new Panel[]{ panel1, panel2, panel3 }); 

참고로 panel_number은 이제 인덱스가 0이어야합니다. 즉, ListDir(path, 0)을 호출하면 panel1에 추가됩니다.

관련 문제