Просмотр дерева принудительно проверяет родительский узел

#c# #winforms #treeview

#c# #winforms #просмотр дерева

Вопрос:

Есть ли способ получить представление дерева для обеспечения соблюдения правила, в котором дочерние узлы требуют проверки своих родительских узлов, без использования обработчика событий checked узла? Когда проверяется дочерний узел, но родительский узел не был проверен, родительский узел должен быть автоматически проверен. Когда родительский узел не отмечен, все дочерние узлы должны быть сняты.

Это будет использоваться в приложении Windows forms для определения прав доступа для пользователя. Определенные права зависят от другого права, отсюда и требование запретить выбор только дочерних элементов.

Комментарии:

1. Почему вы хотите избежать проверяемого обработчика событий? Это WinForms и т. Д.?

2. @LarsTech Да, Winforms. Я отредактирую сообщение. Хотел избежать обработчика событий, чтобы исключить некоторый код пользовательского интерфейса. Его применение — выбор прав доступа. Некоторые права доступа могут быть предоставлены только в сочетании с другими. Я просто подумал, что в древовидных представлениях может быть это встроено, как в диалоговом окне «Добавить компоненты Windows», как дополнительные функции нельзя выбрать без их родительской функции.

Ответ №1:

Без проверенного обработчика событий вы не сможете этого сделать.

Разработайте свой собственный пользовательский элемент управления Treeview, унаследовав стандартный элемент управления Treeview. Поместите код для проверяемого обработчика событий и других проверок внутри пользовательского элемента управления Treeview. Затем используйте его в своей winform.

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