Как я могу управлять флажками в .Net Forms.Просмотр дерева?

StackOverflow https://stackoverflow.com/questions/39119

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

MultiSelectTreeView :

  

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top