ListView OwnerDraw项目高度

时间:2010-12-29 20:23:35

标签: c# winforms listview fonts

我有一个使用OwnerDraw = true和详细信息视图模式的列表视图。 我希望当列表包含3,4或5个项目时,每个项目的高度为listview.Height / 3,4或5而不滚动。

我知道项目的高度取决于字体的大小。

这不起作用

 listView.Font = new Font("Arial", listView.Height / nOfItems);

我在DrawItem事件中使用常量字体大小绘制文本:e.Graphics.DrawString(....)。

2 个答案:

答案 0 :(得分:2)

我成功的做法是通过为图像列表指定一个具有我想要的适当高度的虚拟图像来调整列表视图的高度。

所以,例如为了让每个像素高40像素的行,我将一个40像素高的图像分配给图像列表中的列表视图。

您不必实际绘制图像,只需分配它并完成所有者绘图即可。它看起来像是this screenshot背景中的列表(它是我在.NET中编写的CMS)。

答案 1 :(得分:-2)

你是对的。

实际上当你在ImageList中更改ImageSize属性时,我看到ImageList变为空。所以对于你的问题你必须再次使用欲望ImageSize重新填充ImageList。尝试它可以解决你的问题。