Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 包含其他控件的自定义列表框_.net_Winforms_Controls_Listbox_Custom Controls - Fatal编程技术网

.net 包含其他控件的自定义列表框

.net 包含其他控件的自定义列表框,.net,winforms,controls,listbox,custom-controls,.net,Winforms,Controls,Listbox,Custom Controls,我需要一个自定义列表框,每行包含三个元素: 复选框、字符串和图片框。 如何实现这一点?您可以通过代码对面板进行动态控制,但这很长,我建议您使用以下链接中的网格,因为我认为这是您正在尝试实现的。 , 您可以通过代码对面板进行动态控制,但这很长,我建议您使用以下链接中的网格,因为我认为这正是您试图实现的目标。 , 如果可能,我建议使用网格控件。DataGridView可以做到这一点,但商业版可能会更好 另一种可能的解决方案是覆盖选中列表框上的绘制事件,并创建自定义所有者绘制的控件,或者进行商业化。如

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

您可以通过代码对面板进行动态控制,但这很长,我建议您使用以下链接中的网格,因为我认为这是您正在尝试实现的。 ,

您可以通过代码对面板进行动态控制,但这很长,我建议您使用以下链接中的网格,因为我认为这正是您试图实现的目标。 ,
如果可能,我建议使用网格控件。DataGridView可以做到这一点,但商业版可能会更好


另一种可能的解决方案是覆盖选中列表框上的绘制事件,并创建自定义所有者绘制的控件,或者进行商业化。

如果可能,我建议使用网格控件。DataGridView可以做到这一点,但商业版可能会更好


另一种可能的解决方案是覆盖选中列表框上的绘制事件,创建自定义的所有者绘制控件,或进入商业模式。

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

对于复选框,请查看ControlPaint.DrawCheckBox(…)或CheckBoxRenderer.DrawCheckBox(…)

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


对于picturebox,例如Graphics.DrawImage(…)

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

对于复选框,请查看ControlPaint.DrawCheckBox(…)或CheckBoxRenderer.DrawCheckBox(…)

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

对于picturebox,e.Graphics.DrawImage(…)