TreeView с более чем одним значком - PullRequest
2 голосов
/ 03 ноября 2010

Я хотел бы поместить более одного значка в TreeView (Winforms, .Net 3.5).Я посмотрел на этот проект codeproject (http://www.codeproject.com/KB/tree/treeviewadv.aspx), но он не работает для меня.

Если это возможно, я не хочу менять наш текущий TreeView, т.е.не хотите использовать коммерческий инструмент.

Это возможно сделать самостоятельно?

Большое спасибо.

С уважением,

Vicenç

Ответы [ 2 ]

2 голосов
/ 03 ноября 2010

Если вы установите свойство DrawMode в вашем текущем TreeView в OwnerDrawAll, вы можете легко нарисовать столько значков, сколько захотите.Вы несете ответственность за рисование всех элементов прямоугольной области, составляющей каждый узел, вручную, включая значки, флажки, знаки плюс и минус и соединительные линии, что означает, что вы можете настраивать его внешний вид практически бесконечно.

Когда TreeView установлен на рисование владельца, событие DrawNode запускается для каждого узла, который должен быть нарисован.MSDN дает пример того, как вы могли бы реализовать это: http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.drawnode.aspx.

Для рисования реальных значков, вы захотите изучить метод Graphics.DrawIcon .

1 голос
/ 03 ноября 2010

Вы можете использовать StateImageList в качестве «вторичного» источника изображения.

Обратите внимание, что в нем есть некоторые ошибки, в частности, только поддержка 4-битного цвета.

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