2010-09-07 74 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