自定义ListBox,包括其他控件

时间:2011-07-06 13:52:59

标签: .net winforms controls listbox custom-controls

我需要一个自定义ListBox,每行包含三个元素: 复选框,字符串和图片框。 如何实现这一目标?

3 个答案:

答案 0 :(得分:1)

您可以通过代码对面板进行动态控制,但这很长,我建议您使用类似以下链接的网格,因为我认为这是您要实现的目标。 http://csharpdotnetfreak.blogspot.com/2009/07/display-images-gridview-from-database.htmlhttp://www.asp.net/data-access/tutorials/adding-a-gridview-column-of-checkboxes-cs

答案 1 :(得分:1)

如果可能,我建议使用网格控件。 DataGridView将执行此操作,但商业版本可能会更好。

另一种可能的解决方案是覆盖已选中列表框上的绘制事件,并创建自定义所有者绘制控件http://www.codeproject.com/KB/combobox/Owner_drawn_ListBox.aspx,或进行商业化。

答案 2 :(得分:1)

另一种方法是将DrawMode从Normal更改为OwnerDrawFixed或OwnerDrawVariable,并在列表框的DrawItem事件中自行绘制。

对于CheckBox,请查看ControlPaint.DrawCheckBox(...)或CheckBoxRenderer.DrawCheckBox(...)

对于字符串,e.Graphics.DrawString(...)

对于图片框,e.Graphics.DrawImage(...)