Form10.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.IO;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. namespace WindowsFormsApp19
  12. {
  13. public partial class Form10 : Form
  14. {
  15. int koef = 1;
  16. public Form10()
  17. {
  18. InitializeComponent();
  19. treeView1.BeforeSelect += treeView1_BeforeSelect;
  20. treeView1.BeforeExpand += treeView1_BeforeExpand;
  21. // заполняем дерево дисками
  22. FillDriveNodes();
  23. trackBar1.Scroll += trackBar1_Scroll;
  24. this.Width = 400;
  25. button1.Width = 40;
  26. button1.Left = 40;
  27. button1.Text = "";
  28. button1.BackColor = Color.Aqua;
  29. timer1.Interval = 500; // 500 миллисекунд
  30. timer1.Enabled = true;
  31. button1.Click += button1_Click;
  32. timer1.Tick += timer1_Tick;
  33. }
  34. private void Form10_Load(object sender, EventArgs e)
  35. {
  36. }
  37. void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
  38. {
  39. e.Node.Nodes.Clear();
  40. string[] dirs;
  41. try
  42. {
  43. if (Directory.Exists(e.Node.FullPath))
  44. {
  45. dirs = Directory.GetDirectories(e.Node.FullPath);
  46. if (dirs.Length != 0)
  47. {
  48. for (int i = 0; i < dirs.Length; i++)
  49. {
  50. TreeNode dirNode = new TreeNode(new DirectoryInfo(dirs[i]).Name);
  51. FillTreeNode(dirNode, dirs[i]);
  52. e.Node.Nodes.Add(dirNode);
  53. }
  54. }
  55. }
  56. }
  57. catch (Exception ex) { }
  58. }
  59. // событие перед выделением узла
  60. void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
  61. {
  62. e.Node.Nodes.Clear();
  63. string[] dirs;
  64. try
  65. {
  66. if (Directory.Exists(e.Node.FullPath))
  67. {
  68. dirs = Directory.GetDirectories(e.Node.FullPath);
  69. if (dirs.Length != 0)
  70. {
  71. for (int i = 0; i < dirs.Length; i++)
  72. {
  73. TreeNode dirNode = new TreeNode(new DirectoryInfo(dirs[i]).Name);
  74. FillTreeNode(dirNode, dirs[i]);
  75. e.Node.Nodes.Add(dirNode);
  76. }
  77. }
  78. }
  79. }
  80. catch (Exception ex) { }
  81. }
  82. // получаем все диски на компьютере
  83. private void FillDriveNodes()
  84. {
  85. try
  86. {
  87. foreach (DriveInfo drive in DriveInfo.GetDrives())
  88. {
  89. TreeNode driveNode = new TreeNode { Text = drive.Name };
  90. FillTreeNode(driveNode, drive.Name);
  91. treeView1.Nodes.Add(driveNode);
  92. }
  93. }
  94. catch (Exception ex) { }
  95. }
  96. // получаем дочерние узлы для определенного узла
  97. private void FillTreeNode(TreeNode driveNode, string path)
  98. {
  99. try
  100. {
  101. string[] dirs = Directory.GetDirectories(path);
  102. foreach (string dir in dirs)
  103. {
  104. TreeNode dirNode = new TreeNode();
  105. dirNode.Text = dir.Remove(0, dir.LastIndexOf("\\") + 1);
  106. driveNode.Nodes.Add(dirNode);
  107. }
  108. }
  109. catch (Exception ex) { }
  110. }
  111. private void trackBar1_Scroll(object sender, EventArgs e)
  112. {
  113. label1.Text = String.Format("Текущее значение: {0}", trackBar1.Value);
  114. }
  115. private void timer1_Tick(object sender, EventArgs e)
  116. {
  117. progressBar1.PerformStep();
  118. if (button1.Left == (this.Width - button1.Width - 10))
  119. {
  120. koef = -1;
  121. }
  122. else if (button1.Left == 0)
  123. {
  124. koef = 1;
  125. }
  126. button1.Left += 10 * koef;
  127. }
  128. // обработчик нажатия на кнопку
  129. void button1_Click(object sender, EventArgs e)
  130. {
  131. if (timer1.Enabled == true)
  132. {
  133. timer1.Stop();
  134. }
  135. else
  136. {
  137. timer1.Start();
  138. }
  139. }
  140. private void button1_Click_1(object sender, EventArgs e)
  141. {
  142. }
  143. private void button2_Click(object sender, EventArgs e)
  144. {
  145. Form11 frm11 = new Form11();
  146. frm11.Show();
  147. }
  148. }
  149. }