2011-12-08 41 views
-1

我目前正在爲自己的利益編寫一個小型rolodex應用程序,並遇到了一些小問題。用戶自定義TabPage加載到TabControl

我有我寫的用戶定義的TabPage DLL。用戶在空白的UD-TabPage上輸入關於某人的信息。然後,我從tabPage中剝離信息並將其存儲在我創建的Record對象中。

用戶可以選擇創建許多這些tabPages。每次將信息存儲在Record對象中並將該對象放置在List<Record>中。

當用戶完成輸入聯繫人並想瀏覽所有選項卡時,然後在TabControl,A-Z上放置26個tabPages。他們將滾動到他們想要的tabPage,以便他們可以查看他們的聯繫人。

我遇到的問題是,我不確定如何從List<record>中取數據並將其放回tabControl,而無需創建額外的選項卡。例如。如果我有一個名叫「約翰史密斯」和「蘇珊史密斯」的人,我希望能夠滾動到S標籤,而約翰先生將會在那裏,而當我點擊下一個時,蘇珊會顯示出來。

我已經按照用戶創建的選項卡進行了字母順序排列。我只是不確定如何整齊地顯示它們。

如果有人有一些想法或一些psuedocode會很好!謝謝!

+2

Metro?的WinForms? WPF? Silverlight的? ASP.Net? MonoTouch的? – SLaks

+0

這聽起來像是一個令人困惑和笨拙的設計。 – svick

+1

我很抱歉。這就是爲什麼它是我的個人項目,以獲得更多的知識。不適合任何職業。 – Johnrad

回答

1

我會用字典)。例如:

 List<record> cUngroupedRecords = new List<record>(); 

     Dictionary<string, List<record>> cGroupedRecords = new Dictionary<string, List<record>(); 

     foreach (record Record in cUngroupedRecords) 
     { 
      string sFirstChar = Record.LastName[0].ToString(); 
      List<record> cRecords; 

      if (cGroupedRecords.ContainsKey(sFirstChar)) { 
       cRecords = cGroupedRecords[sFirstChar]; 
      } else { 
       cRecords = new List<string>(); 
       cGroupedRecords.Add(sFirstChar, cRecords); 
      } 
      cRecords.Add(Record); 
     } 

然後,您可以循環訪問cGroupedRecords中的每個組。

+0

非常感謝你的幫助。 – Johnrad