Пошаговое руководство. Создание интерфейса в стиле проводника с использованием элементов управления ListView и TreeView с помощью конструктора
Одним из преимуществ Visual Studio является возможность создания профессиональных приложений Windows Forms в короткие сроки. Распространенным сценарием Создание пользовательского интерфейса (UI) с ListView и TreeView элементы управления похож на функцию Windows Explorer операционных систем Windows. Windows Explorer отображает иерархическую структуру файлов и папок на компьютере пользователя.
Note
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска. Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров . Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки Visual Studio.
Чтобы создать форму, содержащую элемент управления ListView и TreeView
- В меню Файл выберите пункт Создать, а затем команду Проект. 
- В новый проект диалоговом окне сделайте следующее: - В категориях, выбрав Visual Basic или Visual C#. 
- В списке шаблонов выберите приложение Windows Forms. 
 
- Нажмите кнопку ОК. Создается новый проект Windows Forms. 
- Добавить SplitContainer управления в форму и задайте его Dock свойства Fill. 
- Добавить ImageList с именем - imageList1в форму и используйте окно свойств для добавления двух изображений: папки и документа, в указанном порядке.
- Добавить TreeView управления с именем - treeview1в форму и расположите его в левой части SplitContainer элемента управления. В окне «Свойства» для- treeView1выполните следующие действия:
- Добавить ListView управления с именем - listView1в форму и разместите его справа от SplitContainer элемента управления. В окне «Свойства» для- listview1выполните следующие действия:
- Откройте редактор коллекции заголовков столбцов, нажав кнопку с многоточием (  ) в Columns свойство . Добавьте три столбца и задайте их Text свойства ) в Columns свойство . Добавьте три столбца и задайте их Text свойства- Name,- Type, и- Last Modified, соответственно. Нажмите кнопку ОК, чтобы закрыть диалоговое окно.
- Задать SmallImageList свойства - imageList1.
 
- Реализуйте код для заполнения TreeView с узлов и подузлов. Добавьте следующий код в - Form1класса.- private void PopulateTreeView() { TreeNode rootNode; DirectoryInfo info = new DirectoryInfo(@"../.."); if (info.Exists) { rootNode = new TreeNode(info.Name); rootNode.Tag = info; GetDirectories(info.GetDirectories(), rootNode); treeView1.Nodes.Add(rootNode); } } private void GetDirectories(DirectoryInfo[] subDirs, TreeNode nodeToAddTo) { TreeNode aNode; DirectoryInfo[] subSubDirs; foreach (DirectoryInfo subDir in subDirs) { aNode = new TreeNode(subDir.Name, 0, 0); aNode.Tag = subDir; aNode.ImageKey = "folder"; subSubDirs = subDir.GetDirectories(); if (subSubDirs.Length != 0) { GetDirectories(subSubDirs, aNode); } nodeToAddTo.Nodes.Add(aNode); } }
- Так как предыдущий код использует пространство имен System.IO, добавьте соответствующий или импортировать инструкцию в верхней части формы. - using System.IO;
- Вызовите метод настройки из предыдущего шага в конструкторе формы или Load метод обработки событий. Добавьте следующий код в конструктор формы. - public Form1() { InitializeComponent(); PopulateTreeView(); }
- Обрабатывать NodeMouseClick событие для - treeview1, и реализации кода для заполнения- listview1содержимое узла, при щелчке узла. Добавьте следующий код в- Form1класса.- void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { TreeNode newSelected = e.Node; listView1.Items.Clear(); DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag; ListViewItem.ListViewSubItem[] subItems; ListViewItem item = null; foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories()) { item = new ListViewItem(dir.Name, 0); subItems = new ListViewItem.ListViewSubItem[] {new ListViewItem.ListViewSubItem(item, "Directory"), new ListViewItem.ListViewSubItem(item, dir.LastAccessTime.ToShortDateString())}; item.SubItems.AddRange(subItems); listView1.Items.Add(item); } foreach (FileInfo file in nodeDirInfo.GetFiles()) { item = new ListViewItem(file.Name, 1); subItems = new ListViewItem.ListViewSubItem[] { new ListViewItem.ListViewSubItem(item, "File"), new ListViewItem.ListViewSubItem(item, file.LastAccessTime.ToShortDateString())}; item.SubItems.AddRange(subItems); listView1.Items.Add(item); } listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }- Если вы используете C#, убедитесь, что у вас есть NodeMouseClick событие, связанное со своим методом обработки событий. Добавьте следующий код в конструктор формы. - this.treeView1.NodeMouseClick += new TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
Тестирование приложения
Теперь можно проверить форму, чтобы убедиться, что она правильно работает.
Чтобы проверить форму
- Нажмите клавишу F5 для запуска приложения. - Вы увидите разбиения форму, содержащую TreeView элемент управления, отображающий каталог проекта на левой стороне, и ListView управления справа от оператора с тремя столбцами. Вы сможете просматривать TreeView , выбрав узлы каталога и ListView заполняется содержимое выбранного каталога. 
Следующие шаги
Это приложение служит примером способом, можно использовать TreeView и ListView вместе элементы управления. Дополнительные сведения об этих элементах управления см. в разделах:
- Практическое руководство. Добавление в элемент управления ListView возможностей поиска 
- Практическое руководство. Подключение контекстного меню к узлу элемента управления TreeView 
См. также
- ListView
- TreeView
- Элемент управления ListView
- Практическое руководство. Добавление и удаление узлов элемента управления TreeView в Windows Forms
- Практическое руководство. Добавление и удаление элементов с помощью элемента управления ListView в Windows Forms
- Практическое руководство. Добавление столбцов в элемент управления ListView в Windows Forms