2014-01-25 61 views
1

我需要一些抽象方法來處理多個控件,如ListView多實例/多選項卡方法

現在我有這樣的事情。我需要寫每塊面板的功能PANEL1,是Panel2,·Panel3中,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現在必須爲零索引,這意味着要求ListDir(path, 0)將其添加到panel1