using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.IO; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp19 { public partial class Form10 : Form { int koef = 1; public Form10() { InitializeComponent(); treeView1.BeforeSelect += treeView1_BeforeSelect; treeView1.BeforeExpand += treeView1_BeforeExpand; // заполняем дерево дисками FillDriveNodes(); trackBar1.Scroll += trackBar1_Scroll; this.Width = 400; button1.Width = 40; button1.Left = 40; button1.Text = ""; button1.BackColor = Color.Aqua; timer1.Interval = 500; // 500 миллисекунд timer1.Enabled = true; button1.Click += button1_Click; timer1.Tick += timer1_Tick; } private void Form10_Load(object sender, EventArgs e) { } void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) { e.Node.Nodes.Clear(); string[] dirs; try { if (Directory.Exists(e.Node.FullPath)) { dirs = Directory.GetDirectories(e.Node.FullPath); if (dirs.Length != 0) { for (int i = 0; i < dirs.Length; i++) { TreeNode dirNode = new TreeNode(new DirectoryInfo(dirs[i]).Name); FillTreeNode(dirNode, dirs[i]); e.Node.Nodes.Add(dirNode); } } } } catch (Exception ex) { } } // событие перед выделением узла void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e) { e.Node.Nodes.Clear(); string[] dirs; try { if (Directory.Exists(e.Node.FullPath)) { dirs = Directory.GetDirectories(e.Node.FullPath); if (dirs.Length != 0) { for (int i = 0; i < dirs.Length; i++) { TreeNode dirNode = new TreeNode(new DirectoryInfo(dirs[i]).Name); FillTreeNode(dirNode, dirs[i]); e.Node.Nodes.Add(dirNode); } } } } catch (Exception ex) { } } // получаем все диски на компьютере private void FillDriveNodes() { try { foreach (DriveInfo drive in DriveInfo.GetDrives()) { TreeNode driveNode = new TreeNode { Text = drive.Name }; FillTreeNode(driveNode, drive.Name); treeView1.Nodes.Add(driveNode); } } catch (Exception ex) { } } // получаем дочерние узлы для определенного узла private void FillTreeNode(TreeNode driveNode, string path) { try { string[] dirs = Directory.GetDirectories(path); foreach (string dir in dirs) { TreeNode dirNode = new TreeNode(); dirNode.Text = dir.Remove(0, dir.LastIndexOf("\\") + 1); driveNode.Nodes.Add(dirNode); } } catch (Exception ex) { } } private void trackBar1_Scroll(object sender, EventArgs e) { label1.Text = String.Format("Текущее значение: {0}", trackBar1.Value); } private void timer1_Tick(object sender, EventArgs e) { progressBar1.PerformStep(); if (button1.Left == (this.Width - button1.Width - 10)) { koef = -1; } else if (button1.Left == 0) { koef = 1; } button1.Left += 10 * koef; } // обработчик нажатия на кнопку void button1_Click(object sender, EventArgs e) { if (timer1.Enabled == true) { timer1.Stop(); } else { timer1.Start(); } } private void button1_Click_1(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { Form11 frm11 = new Form11(); frm11.Show(); } } }