2010-09-07 78 views
0

我試圖將標籤和行添加到tablelayout。當我使用添加到像這樣的列表視圖:C#將標籤添加到tablelayot

ListViewItem ite = new ListViewItem(tag); 
ite.Text = (tag + " " + description + war); 
listView2.Items.Add(ite.Text); 

它的工作,但是當我嘗試另一個它不起作用。爲什麼?沒有任何錯誤或例外。

foreach (DataElement elementy in sq) 
{      
     for (int k = 0; k == row_number; k = k + 1) 
     { 
     tag = elementy.Tag.ToString(); 
     description = elementy.VR.Tag.GetDictionaryEntry().Description; 



     // ListViewItem ite = new ListViewItem(tag); 
     //ite.Text = (tag + " " + description + war); 
     //listView2.Items.Add(ite.Text); 

      tableLayoutPanel1.GrowStyle = TableLayoutPanelGrowStyle.AddRows; 
      Label et_tag = new Label(); 
      et_tag.AutoSize= true; 
      et_tag.Text = tag; 
      tableLayoutPanel1.Controls.Add(et_tag, 0, k); 
      Label op = new Label(); 
      op.AutoSize = true; 
      op.Text = description; 
      tableLayoutPanel1.Controls.Add(op, 1, k); 

     } 
} 

回答

1

你內心for循環將無法運行,除非row_number是0。否則,它會失敗K被初始化後其狀態,並作爲一個後果,什麼也不做。你的循環幾乎肯定沒有運行。如果row_number實際上是 0,那麼對於外部foreach循環中的每個項目,您的循環只會運行一次。

你想循環運行什麼條件?你的意思是k < row_number?你只想做一個單一的k這裏k == row_number,在這種情況下,你應該簡單地將row_number分配給k並完全擺脫循環?我不知道row_number來自哪裏,所以我不知道這段代碼想幹什麼。

+0

行號是一個數字的按順序的每個元素的標籤。每個元素都有兩個標籤來描述它。我想在tablelayout中顯示這些標籤。 – luc 2010-09-07 20:36:20

+0

你想要一個k 2010-09-07 20:50:38

+0

哦,沒錯 - >'k luc 2010-09-07 20:59:25

1

不知道你是如何初始化ROW_NUMBER,但或許它應該是這樣的:

for (int k = 0; k <= row_number; k = k + 1) 
+0

我修復了我的程序。非常感謝:) – luc 2010-09-07 21:03:31