|
Прошел курс. Получил код 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 для просмотра дерева каталогов
Если запустить эту программу, то можно заметить, что хоть она и выполняет все правильно, но очень долго (ужасно долго!) сканирует файловую систему диска (непростая работа).
Вот ее внешний вид
