Как добавить значки в элемент управления TreeView в c # с помощью аргументов OnPaint - PullRequest
2 голосов
/ 31 августа 2011

Как добавить значки в элемент управления TreeView в c # БЕЗ элемента управления ImageList?Я думаю, что вам нужно вызвать аргументы события OnPaint, но не знаю, как это сделать.

Ответы [ 3 ]

3 голосов
/ 31 августа 2011

Вам нужно кодировать элемент управления OwnerDraw.Если у вас нет действительно серьезных причин, избегайте этого, поскольку это может обернуться очень сложными сценариями, если вы хотите сделать это хорошим способом.

Посмотрите на этот пример.

Событие DrawNode

2 голосов
/ 31 августа 2011

Вы можете переопределить OnDrawNode() и установить DrawMode на TreeViewDrawMode.OwnerDrawAll. Однако вскоре вы поймете, что эмулировать точное поведение дерева по умолчанию практически невозможно. Некоторое состояние хранится в частном порядке с помощью элемента управления, к которому вы не можете получить доступ без особых хлопот.

Например, в стандартном древовидном элементе управления нажатие кнопки мыши над узлом, не отпуская его, покажет узел, выбранный до того, как он будет зарегистрирован как выбранный элементом управления древовидной структурой. Попытка подражать тому, чтобы использовать узлы, нарисованные владельцем, очень трудна и в основном требует повторной реализации всего этого.

1 голос
/ 31 августа 2011
...