public MainForm() { InitializeComponent(); Loader = CreateAsyncLoader(); //Loader = CreateSyncLoader(); // загрузка и инициализация дерева папок DirectoriesTree.Load(); DirectoriesTree.AfterDirectorySelect += DirectoriesTree_AfterDirectorySelect; // добавление картинок в дереве ImageList treeImageList = new ImageList(); treeImageList.Images.Add("folder-opened", LoadEmbeddedImage("ImageViewer.res.folder-opened.png")); treeImageList.Images.Add("folder-closed", LoadEmbeddedImage("ImageViewer.res.folder-closed.png")); DirectoriesTree.ImageList = treeImageList; DirectoriesTree.ImageKey = "folder-closed"; DirectoriesTree.SelectedImageKey = "folder-opened"; // инициализация окна просмотра содержимого папки Image defaultImageThumbnail = LoadEmbeddedImage("ImageViewer.res.image.png"); Image folderThumbnail = LoadEmbeddedImage("ImageViewer.res.folder.png"); DirectoryView.InitializeComponent(Loader, defaultImageThumbnail, folderThumbnail); DirectoryView.ImageActivated += DirectoryView_ImageActivated; DirectoryView.FolderActivated += DirectoryView_FolderActivated; }
/// <summary> /// Обработчик выбора папки /// </summary> /// <param name="dirpath"></param> private void DirectoryView_FolderActivated(string dirpath) { DirectoryView.LoadDirectory(dirpath); // чтобы пользователю было легче ориентироваться, раскрываем путь к дереве DirectoriesTree.ExpandDirectory(dirpath); }
private void OpenDirectory() { using var dialog = new FolderBrowserDialog(); var dialogResult = dialog.ShowDialog(); var path = dialog.SelectedPath; if (dialogResult == DialogResult.OK && !string.IsNullOrWhiteSpace(path) && Directory.Exists(path)) { DirectoriesTree.BeginUpdate(); PopulateDirectoryInfo(path, DirectoriesTree.Nodes); DirectoriesTree.EndUpdate(); } }