Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Стандартные элементы управления
Элемент древовидного представления TreeView
Элемент управления TreeView отображает информацию в виде иерархического дерева с узловыми элементами типа TreeNode. Каждый узел TreeNode может быть родителем других узлов того же типа. Непосредственные потомки текущего узла-родителя указаны в свойстве Nodes типа TreeNodeCollection. По умолчанию узлы TreeNode дерева TreeView свернуты и имеют слева значок " + ", щелчок на котором разворачивает узел и появляется значок " - ". Программное управление сворачиванием/разворачиванием узлов выполняется методами Expand(), ExpandAll(), Collapse(), Toggle() объекта TreeNode, а его булевы свойства IsExpanded и IsSelected позволяют выяснить, развернут или выделен соответствующий узел.
Управление видимостью значков и линий связи всего дерева выполняется с помощью булевых свойств ShowPlusMinus, ShowRootLines, ShowLines объекта TreeView. Его свойство SelectedNode позволяет получить или задать выделенный узел дерева просмотра.
Элемент TreeView имеет набор событий, которые реагируют на действия пользователя, например: BeforeSelect, AfterSelect, BeforeExpand, AfterExpand, BeforeCollapse, AfterCollapse. В обработчиках этих события можно организовать нужную логику работы дерева просмотра.
Приведем пример простой программы построения дерева, отображающего дерево каталогов диска C: текущего компьютера.
using System; using System.Drawing; using System.Windows.Forms; // Пространство имен для работы с каталогами using System.IO; namespace Test { // Класс приложения class MyClass : Form { public MyClass() // Конструктор { this.Text = "Простое дерево каталогов"; this.FormBorderStyle = FormBorderStyle.FixedSingle; // Замыкаем размеры this.MaximizeBox = false; this.StartPosition = FormStartPosition.CenterScreen; // Создаем объект дерева TreeView tree = new TreeView(); // Привязываем к форме tree.Parent = this; // Разварачиваем на всю форму tree.Dock = DockStyle.Fill; // Создаем корневой узел TreeNode nodeDriveC = new TreeNode("C:\\"); // Добавляем корневой узел к дереву просмотра tree.Nodes.Add(nodeDriveC); // Развертываем корневой узел nodeDriveC.Expand(); // Считываем дерево каталогов AddDirectories(nodeDriveC); } // Рекурсивный метод void AddDirectories(TreeNode node) { // Для текущего узла node получаем полный путь к корню дерева string strPath = node.FullPath; // Создаем объект текущего каталога DirectoryInfo dirInfo = new DirectoryInfo(strPath); // Объявляем ссылку на массив подкаталогов текущего каталога DirectoryInfo[] arrayDirInfo; try { // Пытаемся получить список подкаталогов arrayDirInfo = dirInfo.GetDirectories(); } catch { // Подкаталогов нет, выходим из рекурсии return; } // Добавляем прочитанные подкаталоги как узлы в дерево просмотра foreach (DirectoryInfo dir in arrayDirInfo) { // Создаем новый узел с именем подкаталога TreeNode nodeDir = new TreeNode(dir.Name); // Добавляем его как дочерний к текущему узлу node.Nodes.Add(nodeDir); // Развертываем узел //nodeDir.Expand(); // Делаем дочерний узел текущим и спускаемся рекурсивно ниже AddDirectories(nodeDir); } } } // Запуск class Program { static void Main() { Application.EnableVisualStyles(); Application.Run(new MyClass()); } } }Листинг 15.7 . Применение TreeView для просмотра дерева каталогов
Если запустить эту программу, то можно заметить, что хоть она и выполняет все правильно, но очень долго (ужасно долго!) сканирует файловую систему диска (непростая работа).
Вот ее внешний вид