11. В окне Solution Explorer выделите имя проекта Library и в его контекстном меню выберите команду Add4Add New Item.
12. В диалоге Add New Item выберите тип проекта User Control, задайте имя ExplorerControl.cs и нажмите кнопку Open.
13. В окне Solution Explorer выделите имя файла Class1.cs и нажмите Delete для того, чтобы удалить этот файл из проекта.
14. В окне Solution Explorer выделите узел References (проекта Library) и в его контекстном меню выберите команду Add Reference.
15. В диалоге Add Reference (на вкладке .NET) найдите библиотеку System.Management и нажмите кнопки Select и OK.
16. Внесите изменения в начальную заготовку класса (файл ExplorerControl.cs) так, как показано ниже, но оставьте нетронутым традиционный код Windows приложения — методы Dispose и InitializeComponent.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.IO;
using System.Management;
using System.Runtime.InteropServices;
namespace Library
{
public class ExplorerControl : UserControl
{
private Container components = null;
public ExplorerControl()
{
InitializeComponent();
}
// Здесь следует традиционный код (методы Dispose и т.д.). Оставьте его, а лучше спрячьте в блок Designer Generated Code.
}
}
Сейчас важно понять, что мы разрабатываем проект Library. Он создаст DLL, которая будет экспортировать 4 класса, производных от UserControl. Они будут обслуживать 4 вкладки Windows-приложения Client, которое вы видите на рисунке выше. Класс ExplorerControl пока пуст, но мы добавим в него элементы управления и он станет обслуживать первый блок из тех 4-х вкладок, которые присутствуют в приложении Client.
1. Переведите текущий файл (класс ExplorerControl) в режим дизайна и задайте размеры его окна равными примерно (728; 480). Копируйте числа отсюда и вставляйте в поля окна Properties.
2. В окне Toolbox возьмите элемент типа ImageList и положите его на форму. Задайте ему имя (свойство Name) treeImages.
3. Положите на форму элемент типа TreeView. Задайте ему следующие свойства: Name = tree, Dock = Left, Size = 224; 480, ImageList = treeImages; TabIndex = 0.
4. Положите на форму элемент типа Splitter. Задайте ему следующие свойства: Name = splitter, Location = 224; 0, Dock = Left, TabIndex = 2.
5. Положите элемент типа ListView. Задайте ему следующие свойства: Name=fileList, Location = 227; 0, Dock = Fill, View = Details, FullRowSelect = true, GridLines = true, BackColor = FloralWhite, TabIndex = 1.
6. Введите обработку события. При активном элементе ListView нажмите кнопку Events, которая расположена в окне Properties, найдите событие ColumnClick и совершите по этой строке двойной щелчок.
7. Введите обработку событий для TreeView. Активизируйте его, найдите событие AfterExpand (совершите двойной щелчок), нажмите Ctrl+F6 и повторите эту процедуру для событий AfterSelect и BeforeExpand.
8. В окне Solution Explorer выделите узел Library и в его контекстном меню выберите команду Rebuild.
Мы закончили работу с ресурсами и создали первый вариант DLL. Теперь следует вдохнуть жизнь в новый компонент ExplorerControl, который предоставит всем своим пользователям функциональность, сходную с той, какую дает Windows Explorer. Для этого придется разобраться в некоторых технологических деталях управления такими элементами как: TreeView и ListView, а также компонента FileSystemWatcher. В дереве слева мы собираемся отобразить структуру файловой системы, а в списке справа — файлы, имеющиеся в текущей директории, то есть той папке, которая выбрана в дереве слева.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.