Как использовать флажок, который отображается в функции панели управления программы - PullRequest
2 голосов
/ 24 ноября 2011

Я делаю приложение для Windows на C #.

Я хочу использовать флажок, установленный в функции программы панели управления Windows 7.

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

Я использую отдельные флажки (например, checkboxImageList, найденные в Google), а не флажок treeview.

Ответы [ 2 ]

0 голосов
/ 24 ноября 2011

Может быть, вам лучше использовать TreeView. Вот пример TreeView, управляющего только состоянием промежуточной проверки.

0 голосов
/ 24 ноября 2011

Ну, флажок в виде дерева избавит вас от многих хлопот, потому что вы можете просто использовать LINQ, чтобы проверять или снимать отметку со всех узлов, когда на узел нажимают, обрабатывая событие Click (скажем, clickedItem - это узел, который былclicked:

foreach (TreeNode node in clickedItem.Nodes.ToList())
{
    node.IsSelected = clickedItem.IsSelected;
}

Кроме того, с точки зрения пользовательского интерфейса имеет смысл TreeView. Если вы абсолютно настаиваете на использовании отдельных флажков, то вы просто строите дерево из CheckBox элементов в памятивозможно, используя что-то вроде этого образца Tree<T> тип данных , а затем, когда вы нажимаете на флажок, просто рекурсивно перемещайтесь по дереву, пока не отметите каждый флажок под этим.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...