我需要一个自定义ListBox,每行包含三个元素: 复选框,字符串和图片框。 如何实现这一目标?
答案 0 :(得分:1)
您可以通过代码对面板进行动态控制,但这很长,我建议您使用类似以下链接的网格,因为我认为这是您要实现的目标。 http://csharpdotnetfreak.blogspot.com/2009/07/display-images-gridview-from-database.html, http://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(...)