Множественный выбор в TreeView
-
13-09-2019 - |
Вопрос
Я использую Windows Forms TreeView
управление в моей программе.Я хотел бы позволить пользователю выбирать несколько узлов на одном уровне, перетаскивая указатель мыши (также называемый выбором «лассо»).Я не думаю, что это стандарт TreeView
позволяет это.
Мой вопрос: как лучше всего этого добиться?Нужно ли мне писать собственное поведение выбора, возможно, в пользовательском или производном элементе управления?С чего мне начать?
Мне не нужно подробное объяснение.Просто небольшой толчок в правильном направлении.
Решение
Это будет непросто сделать со стандартным WinForms. TreeView
контроль.А TreeView
элемент управления поддерживает только один выбор для каждого дерева.Невозможно одновременно выбрать несколько узлов в дереве.
Чтобы добиться такого поведения, вам, скорее всего, придется создать класс, очень похожий на TreeView
что позволяло множественный выбор.Другой вариант — получить из TreeView
и включить множественный выбор, переопределив определенные варианты поведения.Вот статья о том, как сделать последнее.
Другие советы
Рассмотрите возможность реализации множественного выбора в элементе управления, который поддерживает множественный выбор, например просмотр списка.Если вы будете следовать стандартам, понятным большинству пользователей Windows, вы получите решение, которое будет проще реализовать и использовать.
Если вам действительно нужно что-то более сложное, возможно, вам придется рассмотреть возможность разработки собственного элемента управления.