2009-11-29 135 views

回答

1

的Windows 確實允許您更改列標題的高度,它確實允許您更改字體的標題 - 但它絕非易事。這是Windows,你期望什麼? :)

要做這些事情之一,你必須深入到Windows控制和消息的世界。

要更改高度,您必須處理來自Windows的HDM_LAYOUT消息。此消息被髮送到標題控件。在該消息中,您可以控制標題控件的邊界和列表的邊界。同樣,要更改字體,您需要攔截NM_CUSTOMDRAW通知,並設置設備上下文的字體。

這裏有幾個複雜的問題:.NET不公開頭控件; NM_CUSTOMDRAW有幾個階段,您必須適當地釋放資源。

但是,如果你使用VB.NET,你可以避免所有的麻煩,只需使用ObjectListView(.NET WinForms ListView的開源包裝器)。如果需要,可以更改標題高度,並允許在每列上使用不同的字體和顏色。即使你不使用控件,你也可以閱讀源代碼來看看它是如何完成的。

這個例子顯示在行動不同的字體,顏色和換行:

alt text http://objectlistview.sourceforge.net/cs/_images/header-formatting.png