0

我试图在表格布局中添加标签和行。当我像这样添加到列表视图时:

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);

        }
 }
4

2 回答 2

1

除非为 0,否则您的内部for循环将不会运行row_number。否则,它将在 K 初始化后立即使其条件失败,因此,什么也不做。你的循环几乎肯定没有运行。如果 row_number 实际上0,则您的循环将为外部foreach循环中的每个项目运行一次。

您希望循环在什么条件下运行?你的意思是k < row_number相反?您是否只想为单个 k where 执行此操作k == row_number,在这种情况下,您应该简单地将 row_number 分配给 k 并完全摆脱循环?我不知道 row_number 来自哪里,所以我不知道这段代码想要做什么。

于 2010-09-07T20:20:36.137 回答
1

不知道你是如何初始化row_number,但也许它应该是这样的:

for (int k = 0; k <= row_number; k = k + 1)
于 2010-09-07T20:23:52.263 回答