Skip to content

Commit 59826c8

Browse files
Merge pull request #1 from vijayarasan/master
How to search TreeNodeAdv based on its tag value in WinForms TreeViewAdv?
2 parents 030a54e + e8fae4d commit 59826c8

26 files changed

+1747
-1
lines changed

README.md

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,49 @@
11
# How to search tree node based on its tag value in winforms treeviewadv?
2-
This example explains how to search tree node based on its tag value in winforms treeviewadv.
2+
3+
## Search TreeNodeAdv based on its tag value
4+
5+
In **TreeViewAdv**, you can filter **TreeNodeAdv** based on its Tag value. The following code example demonstrates the same.
6+
7+
**C# Code Snippet:**
8+
9+
```C#
10+
List<TreeNodeAdv> nodes;
11+
//To search all nodes
12+
nodes = treeViewAdv1.SearchTree().Where(n => n.Tag == "Search node").ToList();
13+
public static class SOExtension
14+
{
15+
public static IEnumerable<TreeNodeAdv> SearchTree(this TreeViewAdv treeView)
16+
{
17+
return SearchTree(treeView.Nodes);
18+
}
19+
public static IEnumerable<TreeNodeAdv> SearchTree(this TreeNodeAdvCollection coll)
20+
{
21+
return coll.Cast<TreeNodeAdv>().Concat(coll.Cast<TreeNodeAdv>().SelectMany(x => SearchTree(x.Nodes)));
22+
}
23+
}
24+
25+
```
26+
27+
**VB Code Snippet:**
28+
29+
```VB
30+
Private nodes As List(Of TreeNodeAdv)
31+
'To search all nodes
32+
nodes = treeViewAdv1.FlattenTree().Where(Function(n) n.Tag = "Search node").ToList()
33+
Public Module SOExtension
34+
<System.Runtime.CompilerServices.Extension()> _
35+
Public Function SearchTree(ByVal treeView As TreeViewAdv) As IEnumerable(Of TreeNodeAdv)
36+
Return SearchTree(treeView.Nodes)
37+
End Function
38+
<System.Runtime.CompilerServices.Extension()> _
39+
Public Function SearchTree(ByVal coll As TreeNodeAdvCollection) As IEnumerable(Of TreeNodeAdv)
40+
Return coll.Cast(Of TreeNodeAdv)().Concat(coll.Cast(Of TreeNodeAdv)().SelectMany(Function(x) SearchTree(x.Nodes)))
41+
End Function
42+
End Module
43+
44+
```
45+
46+
The following screenshot illustrates the search TreeNodeAdv by using its Tag value.
47+
48+
![Search TreeNodeAdv by using its tag value](Searchbytagvalue.png)
49+

Searchbytagvalue.png

29.1 KB
Loading

TreeViewAdvDemo/C#/Form1.Designer.cs

Lines changed: 239 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

TreeViewAdvDemo/C#/Form1.cs

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Data;
4+
using System.Linq;
5+
using System.Windows.Forms;
6+
using Syncfusion.Windows.Forms.Tools;
7+
8+
namespace TreeViewCustomControl
9+
{
10+
public partial class Form1 : Form
11+
{
12+
#region Constructor
13+
14+
public Form1()
15+
{
16+
InitializeComponent();
17+
this.treeViewAdv1.Nodes[0].CustomControl = this.comboBoxAdv1;
18+
this.treeViewAdv1.Nodes[2].Nodes[0].CustomControl = this.comboBoxAdv3;
19+
20+
this.treeViewAdv1.Nodes[0].Tag = "Search node";
21+
this.treeViewAdv1.Nodes[1].Tag = "Search node";
22+
this.treeViewAdv1.Nodes[2].Tag = "Search node";
23+
this.treeViewAdv1.Nodes[2].Nodes[0].Tag = "Search node";
24+
25+
//To search all nodes
26+
nodes = treeViewAdv1.SearchTree().Where(n => n.Tag == "Search node").ToList();
27+
}
28+
29+
#endregion
30+
31+
List<TreeNodeAdv> nodes;
32+
33+
private void textBox1_TextChanged(object sender, EventArgs e)
34+
{
35+
this.listBox1.Items.Clear();
36+
if (this.textBox1.Text == "Search node")
37+
{
38+
foreach (TreeNodeAdv item in nodes)
39+
{
40+
this.listBox1.Items.Add(item.Text + " :" + "Tag : " + item.Tag);
41+
}
42+
}
43+
}
44+
}
45+
46+
public static class SOExtension
47+
{
48+
public static IEnumerable<TreeNodeAdv> SearchTree(this TreeViewAdv treeView)
49+
{
50+
return SearchTree(treeView.Nodes);
51+
}
52+
53+
public static IEnumerable<TreeNodeAdv> SearchTree(this TreeNodeAdvCollection coll)
54+
{
55+
return coll.Cast<TreeNodeAdv>().Concat(coll.Cast<TreeNodeAdv>().SelectMany(x => SearchTree(x.Nodes)));
56+
}
57+
}
58+
}

0 commit comments

Comments
 (0)