VB - ListView - 改变标题高度?

时间:2009-11-29 07:33:52

标签: vb.net winforms listview

使用Winform和VB.Net - 如何更改列标题高度?

2 个答案:

答案 0 :(得分:1)

Windows 允许您更改列标题的高度,而 允许您更改标题的字体 - 但这远非易事。它是Windows,你期待什么? :)

要做其中任何一项,您必须深入研究Windows控件和消息的世界。

要更改高度,您必须处理来自Windows的HDM_LAYOUT消息。此消息将发送到标头控件。在该消息中,您可以控制标头控件的边界和列表的边界。同样,要更改字体,您需要截取NM_CUSTOMDRAW通知,并设置设备上下文的字体。

这里有几个复杂问题:.NET不公开标题控件; NM_CUSTOMDRAW有几个阶段,您必须适当地释放资源。

但是,如果你使用VB.NET,你可以避免所有麻烦,只需使用ObjectListView(.NET WinForms ListView的开源包装器)。如果需要,可以更改标题高度并允许每列上的不同字体和颜色。即使您不使用该控件,也可以阅读源代码以了解它是如何完成的。

此示例显示了不同的字体,颜色和自动换行:

alt text
(来源:sourceforge.net

答案 1 :(得分:0)

它与字体无关。 您需要子类化ListView的标头控件并处理HDM_LAYOUT消息。 我写了一个简单的技术演示: http://www.codeproject.com/KB/list/VHHListView.aspx