none
Listbox里加入多个同样的Usercontrol只显示第一个 RRS feed

  • 问题

  •    MethodItemControl item = new MethodItemControl("1",false);
       item.Visible = true;
       item.Height = listBox1.ItemHeight;
       //item.Dock = DockStyle.Fill;


       this.listBox1.Items.Add(item);
       this.listBox1.Controls.Add(item);
       this.listBox1.Controls.Owner.Refresh();
       item = new MethodItemControl("2", false);
       item.Visible = true;
       item.Height = listBox1.ItemHeight;

       this.listBox1.Items.Add(item);
       this.listBox1.Controls.Add(item);

       item = new MethodItemControl("3", false);
       item.Visible = true;
       item.Height = listBox1.ItemHeight;

       this.listBox1.Items.Add(item);
       this.listBox1.Controls.Add(item);
       this.listBox1.Controls.Owner.Refresh();
       this.listBox1.Refresh();
       ((MethodItemControl)this.listBox1.Controls[2]).Show();

    我测试过,Controls.Count=3, 但是只能显示我的第一个UC, 我已经确保UC。height 比 listbox.itemheight小了。请问各位高手如何解决?

    2011年8月13日 3:51

答案

  •    MethodItemControl item = new MethodItemControl("1",false);
       item.Visible = true;
       item.Height = listBox1.ItemHeight;
       //item.Dock = DockStyle.Fill;


       this.listBox1.Items.Add(item);
       this.listBox1.Controls.Add(item);
       this.listBox1.Controls.Owner.Refresh();
       item = new MethodItemControl("2", false);
       item.Visible = true;
       item.Height = listBox1.ItemHeight;

       this.listBox1.Items.Add(item);
       this.listBox1.Controls.Add(item);

       item = new MethodItemControl("3", false);
       item.Visible = true;
       item.Height = listBox1.ItemHeight;

       this.listBox1.Items.Add(item);
       this.listBox1.Controls.Add(item);
       this.listBox1.Controls.Owner.Refresh();
       this.listBox1.Refresh();
       ((MethodItemControl)this.listBox1.Controls[2]).Show();

    我测试过,Controls.Count=3, 但是只能显示我的第一个UC, 我已经确保UC。height 比 listbox.itemheight小了。请问各位高手如何解决?


    其实是三个都显示的,因为都重叠了。所以你看上去就只有一个了。不妨设置一下Position,Left或者Top等什么的属性。

    你可以想想,如果动态生成N个Textbox添加到Form面板上,但是不调整Position和这些属性,运行WinForm就只看到一个TextBox。

    当然,在WebForm中,可以使用</br>进行换行。


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    • 已建议为答案 Paul Zhou 2011年8月15日 9:01
    • 已标记为答案 Paul Zhou 2011年8月23日 6:57
    2011年8月13日 8:50
    版主