Как я могу контролировать флажки в .Net Forms.TreeView? - PullRequest
3 голосов
/ 02 сентября 2008

У меня есть настольное приложение .Net с TreeView в качестве одного из элементов пользовательского интерфейса.

Я хочу иметь возможность многократного выбора этого TreeView, только это вообще не поддерживается.

Поэтому я добавляю флажки в дерево. Моя проблема в том, что выбираются только некоторые элементы, а те, которые не могут последовательно каскадно выбираться.

Есть ли способ отключить или скрыть некоторые флажки при отображении других?

Ответы [ 3 ]

4 голосов
/ 02 сентября 2008

Поведение TreeView по умолчанию заключается в том, что когда для свойства Checkboxes установлено значение true, эти флажки будут отображаться для всех TreeNodes.

Поведение, которое вы ищете - чтобы отключить или скрыть некоторые флажки - это пользовательская модификация нормального поведения. Вы можете создать собственную реализацию TreeView или TreeNode, которая переопределяет поведение по умолчанию. Еще одна попытка - использовать свойство TreeView. StateImageList . Некоторые сайты, чтобы проверить для получения дополнительной информации:

1 голос
/ 02 сентября 2008

У меня была очень похожая проблема в редакторе, который я недавно написал. В конце я использовал свойство TreeNode BackColor, чтобы определить состояние выбора узла. Затем я написал обработчик для события SelectionChanged, который проверил состояние клавиш Shift / Control, чтобы определить, был ли выбранный узел добавлен / удален из выделения или создан новый выбор. Было также Generic::List<> узлов, которые в настоящее время были выбраны для исключения любых поисков по дереву.

0 голосов
/ 02 сентября 2008

MultiSelectTreeView

Почему .NET не имеет многоэлементного дерева? Существует множество вариантов использования одного, и включение флажков в древовидной структуре является довольно паршивой альтернативой.

...