当前位置:编程学习 > C#/ASP.NET >>

如何将自定义控件添加入ListBox?

请教各位,问题如下:
我自定义了一个控件,结构很简单,三个Label,然后有与之对应的三个属性。
我想通过Listbox.Items.Add(自定义控件)的方法进行添加并显示,
但结果是添加为报错,但无法在Listbox中显示,请问这是为什么? 有什么办法解决吗?  在下的平台是vs005 --------------------编程问答--------------------

Listbox.Controls.Add(Label控件);
--------------------编程问答--------------------
引用 1 楼 austin_luobj 的回复:
C# code

Listbox.Controls.Add(Label控件);


以上方法并不能达到类似于一行一个项目的效果呀 --------------------编程问答-------------------- 更正一下:是添加项目不报错,但显示不出被添加项目 --------------------编程问答-------------------- 参考 ,每次添加之后 修改下个的 Location  
修改y坐标 就会显示一行行的了

                            int x=0,y=0;
                           CheckBox cb = new CheckBox();
                            cb.Text = col.GetCaption();
                            cb.Tag = col.FieldName;
                            cb.Location = new Point(x, y);
                            listBoxCol.Controls.Add(cb);
                            y += 22;
--------------------编程问答--------------------
引用 4 楼 jijunwu 的回复:
参考 ,每次添加之后 修改下个的 Location  
修改y坐标 就会显示一行行的了

C# code

                            int x=0,y=0;
                           CheckBox cb = new CheckBox();
                            cb.Text = col……


谢谢楼上的方法,不过如果要用Controls.Add() 方法的话,其实还不如直接用TableLayOutPanel.Controls.add()了。
所以我是只想用Listbox.Items.add() 来实现逐行添加控件
--------------------编程问答-------------------- 所以我是只想用Listbox.Items.add() 来实现逐行添加控件

你要添加的是控件不是 添加 项
添加控件用Controls.Add 添加项用 Items.add

--------------------编程问答--------------------
引用 6 楼 jijunwu 的回复:
所以我是只想用Listbox.Items.add() 来实现逐行添加控件

你要添加的是控件不是 添加 项
添加控件用Controls.Add 添加项用 Items.add


这个我知道, 但是Items.Add 也能添加控件包括自定义控件。我自己已经测试过了,可以添加控件,但显示上问题很大,要么只能显示第一项,要么就是不能显示。 --------------------编程问答-------------------- 加入后 你需要让用户自行重绘LISTBOX --------------------编程问答-------------------- TableLayOutPanel真的不错,操作起来也不难

另外你是否考虑过用表格控件显示它呢? --------------------编程问答-------------------- isjoe:  能推荐几个免费的表格控件吗? 网上搜了下,很多都是要注册的的,比如flexgrid。

nexus8899:  想起来了,我的这个方法的确重绘过,思路是把自定义控件转换成的图片再在listbox中画出来,但是效果不好,效率也未必可靠。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,