private void AddNode(object obj) { TreeNode treeNode = (TreeNode)obj; if (treeViewDir.InvokeRequired) { AddNodeDelegate d = AddNode; treeViewDir.Invoke(d, obj); } else { selectedTreeNode.Nodes.Clear(); foreach (TreeNode node in treeNode.Nodes) { string[] info = node.Tag.ToString().Split(','); if (info[0] != "file") { selectedTreeNode.Nodes.Add(node); node.ImageIndex = 0; } } selectedTreeNode.Expand(); //treeNode.Expand(); } }
public Form1() { InitializeComponent(); AND = new AddNodeDelegate(AddNode); SND = new SearchNodeDelegate(SearchNode); ESD = new EndSearchDelegate(EndSearch); CFD = new CurrentFileDelegate(OutputCurrentFile); }
public void AddNode(string text) { // InvokeRequired required compares the thread ID of the // calling thread to the thread ID of the creating thread. // If these threads are different, it returns true. if (treeView1.InvokeRequired) { AddNodeDelegate d = new AddNodeDelegate(AddNode); this.Invoke(d, new object[] { text }); } else { root = treeView1.Nodes.Add(text); } }
private void Clean_Results(TreeNode source, string extension) { if (_stopThread) { return; } AddNodeDelegate remove = new AddNodeDelegate(() => { return; }); foreach (TreeNode node in source.Nodes) { if (!node.Text.Contains(extension) && node.Nodes.Count == 0) { remove += () => Delete_TreeViewNode(node.Parent, node); } Clean_Results(node, extension); } _results.Invoke(remove); }
protected void AddNode(TreeNode parent, TreeNode node) { if (InvokeRequired) { AddNodeDelegate cb = new AddNodeDelegate(AddNode); Invoke(cb, parent, node); } else { if (parent == null) { treeView.Nodes.Add(node); } else { parent.Nodes.Add(node); } } }
private void AddNode(TreeView tree, int depth, string message, string category) { if (tree.InvokeRequired) { //Not on the UI thread so post the request AddNodeDelegate del = new AddNodeDelegate(AddNode); tree.FindForm().BeginInvoke(del, new object[] { tree, depth, message, category }); } else { try { m_Owner.BeginUpdate(); //Move to the correct node collection given the current node and the depth TreeNodeCollection coll = MoveToDepth(depth); //Add the new message TreeNode child = coll.Add(message); TreeNode parent = child.Parent; while (parent != null) { parent.Expand(); parent = parent.Parent; } ; //Set the category image as needed int nIdx = -1; if (String.IsNullOrEmpty(category)) { nIdx = GetCategory(category); } child.ImageIndex = child.SelectedImageIndex = nIdx; } finally { m_Owner.EndUpdate(); }; }; }
private int Search(TreeNode source, DirectoryInfo current, string begin, string end, string extension) { if (_stopThread) { return(0); } int filesNumber = 0; foreach (FileInfo file in current.GetFiles()) { bool flag = true; _filesNumber++; ChangeCurrentFileDelegate change = new ChangeCurrentFileDelegate(() => Change_Current_File(file.FullName)); _curFile.Invoke(change); string filename = file.Name; if (file.Extension != extension) { flag = false; } else { if (!begin.IsEmpty()) { for (var index = 0; index < begin.Length; index++) { if (filename[index] != begin[index]) { flag = false; } } } if (!end.IsEmpty()) { string[] splitter = { "." }; string name = filename.Split(splitter, StringSplitOptions.None).First(); if (name.Length >= end.Length) { for (var index = 0; index < end.Length; index++) { if (name[name.Length - end.Length + index] != end[index]) { flag = false; } } } else { flag = false; } } if (flag) { if (!_textKeyWords.Text.IsEmpty()) { string text = Read_TextFile(file.FullName); string[] splitter = { " " }; foreach (var word in _textKeyWords.Text.Split(splitter, StringSplitOptions.None)) { if (!text.Contains(word)) { flag = false; } } } } } if (flag) { filesNumber++; AddNodeDelegate add = new AddNodeDelegate(() => Add_New_TreeViewNode(source, new TreeNode(file.FullName))); _results.Invoke(add); } } foreach (DirectoryInfo directory in current.GetDirectories()) { TreeNode newNode = new TreeNode(directory.FullName); AddNodeDelegate add = new AddNodeDelegate(() => Add_New_TreeViewNode(source, newNode)); _results.Invoke(add); filesNumber += Search(newNode, directory, begin, end, extension); if (filesNumber == 0) { AddNodeDelegate remove = new AddNodeDelegate(() => Delete_TreeViewNode(source, newNode)); _results.Invoke(remove); } if (_stopThread) { return(0); } } return(filesNumber); }