/// <summary> /// 在追加子节点时,对Tag进行更新 /// </summary> /// <param name="file"></param> private void 更新信息(FileInfo file) { allFileInfos.Add(new KeyValuePair <FileInfo, TreeNode>(file, _node)); FileType = FileType.文件; //只管父级 string exestr = Path.GetExtension(file.FullName).ToLower(); myNodeTag parent = (_node.Parent ?? new TreeNode() { Tag = null }).Tag as myNodeTag; while (parent != null) { if (!parent.extCount.ContainsKey(exestr)) { parent.extCount.Add(exestr, new List <FileInfo>()); } parent.extCount[exestr].Add(file); if (parent.MaxFile == null || parent.MaxFile.Length < file.Length) { parent.MaxFile = file; } if (parent.MinFile == null || parent.MinFile.Length > file.Length) { parent.MinFile = file; } if (parent.LastEditFile == null || parent.LastEditFile.LastWriteTime < file.LastWriteTime) { parent.LastEditFile = file; } if (parent.LastCreateFile == null || parent.LastCreateFile.CreationTime > file.CreationTime) { parent.LastCreateFile = file; } if (parent.LastOpenFile == null || parent.LastOpenFile.LastAccessTime > file.LastAccessTime) { parent.LastOpenFile = file; } parent = (parent._node.Parent ?? new TreeNode() { Tag = null }).Tag as myNodeTag; } }
/// <summary> /// 在追加子节点时,对Tag进行更新 /// </summary> /// <param name="file"></param> private void 更新信息(DirectoryInfo Dir) { FileType = FileType.文件夹; //只管父级 myNodeTag parent = (_node.Parent ?? new TreeNode() { Tag = null }).Tag as myNodeTag; while (parent != null) { if (parent.LastOpenDir == null || parent.LastOpenDir.LastAccessTime > Dir.LastAccessTime) { parent.LastOpenDir = Dir; } parent = (parent._node.Parent ?? new TreeNode() { Tag = null }).Tag as myNodeTag; } }
/// <summary> /// 添加节点之前 修改Tag /// </summary> /// <param name="curtn"></param> /// <param name="chid"></param> /// <param name="isFile"></param> private void AddChildNode(TreeNode curtn, TreeNode chid, bool isFile, int?idx = null) { if (this.treeView1.InvokeRequired) { delAddChildNode stcb = new delAddChildNode(AddChildNode); this.Invoke(stcb, new object[] { curtn, chid, isFile, idx }); } else { //this.txt_a.Text = text; var oldTag = chid.Tag; try { if (idx == null) { curtn.Nodes.Add(chid); } else { curtn.Nodes.Insert(idx ?? 0, chid); } var newTag = new myNodeTag(chid); newTag.Tag = oldTag; if (oldTag is myNodeTag) { ; } else { chid.Tag = newTag; } chid.SelectedImageIndex = chid.ImageIndex = isFile ? 2 : 1; chid.ToolTipText = chid.Name; } catch (Exception) { } } }