private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) //Заполняем +1 уровень перед раскрытием ветки { try { foreach (TreeNode subnode in e.Node.Nodes) { while (true) { try { GetPaths?.Invoke(subnode.FullPath); while (true) { try { bool flag = false; foreach (var item in DirectoriesNames) { if (subnode.Nodes.Count == 0) { flag = true; } if (flag) { var node = new TreeNode(item) { ImageIndex = 2, SelectedImageIndex = 2 }; subnode.Nodes.Add(node); } } } catch { continue; } break; } } catch { // ignored } break; } } } catch { // ignored } }
private void InitTree() { GetDrives?.Invoke(this, EventArgs.Empty); foreach (var drive in Drives) { try//картинки на диски { _treeNode = new TreeNode(); _treeNode = treeView1.Nodes.Add(drive.Key); switch (drive.Value) { case "DriveType.Fixed": case "DriveType.Network": _treeNode.ImageIndex = 1; _treeNode.SelectedImageIndex = 1; break; case "DriveType.Removable": case "DriveType.CDRom": _treeNode.ImageIndex = 0; _treeNode.SelectedImageIndex = 0; break; } GetPaths?.Invoke(drive.Key); foreach (var item in DirectoriesNames) { TreeNode node = new TreeNode(item) { ImageIndex = 2, SelectedImageIndex = 2 }; _treeNode.Nodes.Add(node); } } catch { } } }