收录日期:2020/12/03 00:25:23 时间:2010-09-07 20:16:20 标签:c#,tablelayoutpanel

I tried to add labels and rows to tablelayout. When i used adding to listview like that:

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

it work,but when i try another it doesn't work. Why? There aren't any errors or exceptions.

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

        }
 }

Your inner for loop won't run unless row_number is 0. Otherwise, it will fail its condition immediately after K is initialized and, as a consequence, do nothing. Your loop almost certainly isn't running. If row_number actually is 0, your loop will run exactly once for every item in your outer foreach loop.

What condition do you want the loop to run on? Do you mean k < row_number instead? Do you just want to do this for a single k where k == row_number, in which case you should simply assign row_number to k and get rid of the loop entirely? I don't know where row_number comes from, so I don't know what this code wants to do.

Not sure how you're initializing row_number, but perhaps it should be something like:

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