VB - ListView - Изменить высоту заголовка? - PullRequest
1 голос
/ 29 ноября 2009

Использование Winform и VB.Net - как изменить высоту заголовка столбца?

Ответы [ 2 ]

1 голос
/ 30 ноября 2009

Windows делает позволяет вам изменять высоту заголовков столбцов, а делает позволяет вам изменять шрифт для заголовков - НО это далеко не просто. Это Windows, что вы ожидаете? :)

Чтобы сделать что-то из этого, вы должны окунуться в мир управления Windows и сообщений.

Чтобы изменить высоту, вам нужно иметь дело с сообщением HDM_LAYOUT из Windows. Это сообщение отправляется в заголовок элемента управления. В этом сообщении вы можете контролировать границы элемента управления заголовка и границы списка. Аналогичным образом, чтобы изменить шрифт, необходимо перехватить уведомление NM_CUSTOMDRAW и установить шрифт для контекста устройства.

Здесь есть несколько сложностей: .NET не предоставляет контроль заголовка; NM_CUSTOMDRAW имеет несколько этапов, и вы должны освободить ресурсы соответствующим образом.

Но если вы используете VB.NET, вы можете избежать всех проблем и просто использовать ObjectListView (обертка с открытым исходным кодом вокруг .NET WinForms ListView). Это может изменить высоту заголовка и позволяет использовать разные шрифты и цвета в каждом столбце, если хотите. Даже если вы не используете элемент управления, вы можете просто прочитать источник, чтобы увидеть, как это делается.

В этом примере показаны различные шрифты, цвета и перенос слов в действии:

alt text
(источник: sourceforge.net )

0 голосов
/ 08 января 2010

Это не имеет ничего общего со шрифтом. Вам необходимо создать подкласс управления заголовком ListView и обработать сообщение HDM_LAYOUT. Я написал простую демонстрацию техники: http://www.codeproject.com/KB/list/VHHListView.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...