public void AddFolder() { int i = 0; foreach (TreeNode n in this.Nodes) { if (n.Text == $"NewFolder{i}") { i++; } else { break; } } string path = ""; if (this is ProjectNode) { path = Path.Combine(Path.GetDirectoryName((((FileInfo)this.Tag).FullName)), $"NewFolder{i}"); } else { path = Path.Combine((((DirectoryInfo)this.Tag).FullName), $"NewFolder{i}"); } ProjectNode.Project.AddFolder(path); Directory.CreateDirectory(path); var node = new ProjectFolderNode() { Tag = new DirectoryInfo(path) }; node.Text = $"NewFolder{i}"; Nodes.Add(node); node.EnsureVisible(); node.BeginEdit(); }