2016-08-10 76 views
0

我在將dataGridView添加到每個TabPage時遇到了一些問題。將DataGridView添加到tabControl中的每個TabPage

我從列表中 e.g

 List<string> lista = new List<string>(); 
     lista.Add("test1"); 
     lista.Add("test2"); 
     lista.Add("test3"); 

     foreach (var p in lista) 
     { 
      tabControl_Roz.TabPages.Add(p); 

     } 

添加的TabPages,現在我想添加的DataGridView爲他們每個人。 DataGridView應該命名爲:

 dataGridView_p 

其中p是tabPage名稱。 有人能告訴我我該怎麼做到這一點?

回答

1

只需將DataGridView添加到您創建的TabPage。爲此,您最好使用一個for循環,而不是...的foreach

List<string> lista = new List<string>(); 
    lista.Add("test1"); 
    lista.Add("test2"); 
    lista.Add("test3"); 

    for(int i = 0; i < lista.Count; i++) 
    { 
     tabControl_Roz.TabPages.Add(lista[i]); 
     tabControl_Roz.TabPages[i].Controls.Add(new DataGridView(){ 
      Name="dataGridView_" + lista[i], 
      Dock=DockStyle.Fill}); 
    } 

填補了DataSource,你可以將其添加而創建的datagridview:

tabControl_Roz.TabPages[i].Controls.Add(new DataGridView(){ 
      Name="dataGridView_" + lista[i], 
      Dock=DockStyle.Fill, 
      DataSource = xxx}); 

或作爲第一TabPage的一個例子(index == 0):

int dataGridViewIndex = tabControl_Roz.TabPages[0].Controls.IndexOfKey("dataGridView_" + "test1"); 
if(dataGridViewIndex >= 0) 
{ 
    DataGridView myTabGridView = tabControl_Roz.TabPages[0].Controls[dataGridViewIndex] as DataGridView; 
    if(myTabGridView != null) 
    { 
     myTabGridView.DataSource = xxx; 
    } 
} 
+0

它的工作原理,但還有另一個問題,我怎麼可以使用dataGridView例如:dataGridView.test1.dataSource = dataTable。我怎樣才能做到這一點? – JustSomeNewbie

+1

問題是你不能像設計時習慣的那樣按名稱訪問DataGridView。編譯器不知道如何在運行時添加DataGridView。您必須在TabPage的控件集合中通過名稱手動搜索它。請參閱編輯答案 –

+0

Im在TabPages [0] .Controls.Where中出現錯誤,告訴我該集合不包含「Where」的定義。 – JustSomeNewbie

相關問題