Вопрос

Я использую Windows Forms TreeView управление в моей программе.Я хотел бы позволить пользователю выбирать несколько узлов на одном уровне, перетаскивая указатель мыши (также называемый выбором «лассо»).Я не думаю, что это стандарт TreeView позволяет это.

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

Мне не нужно подробное объяснение.Просто небольшой толчок в правильном направлении.

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

Решение

Это будет непросто сделать со стандартным WinForms. TreeView контроль.А TreeView элемент управления поддерживает только один выбор для каждого дерева.Невозможно одновременно выбрать несколько узлов в дереве.

Чтобы добиться такого поведения, вам, скорее всего, придется создать класс, очень похожий на TreeView что позволяло множественный выбор.Другой вариант — получить из TreeView и включить множественный выбор, переопределив определенные варианты поведения.Вот статья о том, как сделать последнее.

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

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

Если вам действительно нужно что-то более сложное, возможно, вам придется рассмотреть возможность разработки собственного элемента управления.

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