// Recursive usage private void SaveFileEnIPOject(StreamWriter sw, string pre, TreeNodeCollection tnc) { if (tnc == null) { return; } foreach (TreeNode tn in tnc) { String s = Properties.Settings.Default.CSVSeparator.ToString(); EnIPCIPObject obj = (EnIPCIPObject)tn.Tag; sw.WriteLine(pre + obj.Id + s + tn.Text); SaveFileEnIPOject(sw, pre + s + s, tn.Nodes); } }
// Usage by Load file menu private TreeNode AddeNode(TreeNode Parent, EnIPCIPObject obj, String Name, int iconIdx) { foreach (TreeNode t in Parent.Nodes) { // already present, just change the name if (((t.Tag as EnIPCIPObject).Id) == obj.Id) { t.Text = Name; return(t); } } TreeNode tn = new TreeNode(Name, iconIdx, iconIdx); tn.Tag = obj; Parent.Nodes.Add(tn); return(tn); }