2009-08-24 3 views
4

Я могу установить свойство ToolTip элемента управления ListView, но это для всего элемента управления.Как показать всплывающую подсказку для области заголовка элемента управления ListView ListView?

Могу ли я иметь всплывающую подсказку для области заголовка View Details?

ответ

2

ObjectListView (оболочка с открытым исходным кодом вокруг .NET WinForms ListView) поддерживает всплывающие подсказки в заголовках.

Функциональность не очень легко воспроизвести в стандартном ListView, но я опишу необходимые шаги:

  1. получить контроль заголовка в ListView (с использованием сообщения LVM_GETHEADER)
  2. создать всплывающая подсказка, которая предназначена только для заголовка. Стандартный класс .NET ToolTip не может этого сделать, поскольку он работает только с полными элементами управления, и у вас будет только ручка)
  3. прослушивает сообщения TTN_GETDISPINFO на вашей подсказке и соответствующим образом заполняет структуру NMTTDISPINFO.

Это намного проще в использовании ObjectListView, что делает ListView намного проще в использовании и гораздо более функциональным. Этот снимок показывает всплывающую подсказку заголовка, который динамически генерируется в ответ на событие HeaderToolTip:

alt text http://i32.tinypic.com/24vo5fb.png

+0

@Grammarian: Спасибо - это выглядит очень полезно! – RichieHindle

+1

У кого-нибудь есть полный код, необходимый для этого вручную, без использования ObjectListView - для тех из нас, кто придерживается простого ListView? – CrazyTim

+0

Это действительно не очень легко сделать. В этом блоге рассказывается о некоторых проблемах, которые вам придется решать. http://objectlistview.sourceforge.net/cs/blog2.html. Вы всегда можете посмотреть исходный код ObjectListView для вдохновения :) – Grammarian