Completed
Last Updated: 17 Feb 2020 11:56 by ADMIN
Release R1 2020 SP1

Greetings,

While testing the exporting feature of RadTreeView, I noticed the following issue :

Using the code below , everything works just fine :

Me.RadTreeView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes
 
Dim exporter As TreeViewSpreadExport = New TreeViewSpreadExport(Me.RadTreeView1)
 
AddHandler exporter.CellFormatting, AddressOf exporter_CellFormatting
 
exporter.ExportFormat = SpreadExportFormat.Xlsx
 
exporter.ExportVisualSettings = False
exporter.ExportImages = False
exporter.ExportChildNodesGrouped = True
exporter.CollapsedNodeOption = HiddenOption.ExportAlways
 
Dim renderer As SpreadExportRenderer = New SpreadExportRenderer()
 
exporter.RunExport("D:\test.xlsx", renderer)

 

But, the following line of the code raises an error in a specific circumasntance (I describe it more, further in the thread)   :

exporter.RunExport("D:\test.xlsx", renderer)

 

Error Screenshot is attached : 1.jpg

Details about the error :

System.ArgumentOutOfRangeException
  HResult=0x80131502
  Message=value should be greater or equal than 0 and less or equal than 7.
Parameter name: value
  Source=Telerik.Windows.Documents.Spreadsheet
  StackTrace:
 
at Telerik.WinControls.UI.RadButtonBase.buttonElement_Click(Object sender, EventArgs e)
   at Telerik.WinControls.RadElement.OnClick(EventArgs e)
   at Telerik.WinControls.UI.RadButtonElement.OnClick(EventArgs e)
   at Telerik.WinControls.RadElement.DoClick(EventArgs e)
   at Telerik.WinControls.RadElement.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.ComponentInputBehavior.OnMouseUp(MouseEventArgs e)
   at Telerik.WinControls.RadControl.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at Telerik.WinControls.RadControl.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)

 

 

The Specific Circumstance :

In my RadTreeView's NodeMouseClick , I add some child nodes to the node which is clicked, at runtime :

Dim _Node1 As RadTreeNode = e.Node.Nodes.Add("Node 1")
Dim _Node2 As RadTreeNode = e.Node.Nodes.Add("Node 2")
Dim _Node3 As RadTreeNode = e.Node.Nodes.Add("Node 3")

 

Then I found out that setting "exporter.ExportChildNodesGrouped" to True causes the error. But if it is set to false, no error raised even in the above Circumstance.

P.S  Normally setting "exporter.ExportChildNodesGrouped" to True or False doesn't cause any error, but adding some child nodes at run time surly does.

 

Thanks for your attention.

 


Unplanned
Last Updated: 30 Jan 2020 17:06 by ADMIN
Created by: Uladzislau
Comments: 1
Category: TreeView
Type: Bug Report
0

Add a CodedUI test which records expanding a node in RadTreeView. Run the CodedUI test and you will see that the TestMethod throws the following exception:

"Microsoft.VisualStudio.TestTools.Extension.UITestControlNotFoundException: The playback failed to find the control with given search properties."

Completed
Last Updated: 30 Jan 2020 09:34 by ADMIN
Release R3 2018
Please refer to the attached sample project. Run the application on a WIndows 10 machine. Switch on the Narrator and try to expand a node then the EnableRadAccessibilityObjects  property is set to true.

Workaround: set the EnableRadAccessibilityObjects property to false.
Declined
Last Updated: 20 Jan 2020 12:09 by ADMIN
Created by: George
Comments: 1
Category: TreeView
Type: Bug Report
0
Please use the following code snippet:    

 

Sub New()

        InitializeComponent()
        Me.RadTreeView1.Nodes.Clear()
        Me.RadTreeView1.CheckBoxes = True

        Dim node = New RadTreeNode("1") With {.CheckType = CheckType.CheckBox, .Checked = True, .CheckState = ToggleState.Indeterminate}
        RadTreeView1.Nodes.Add(node)
        node.Nodes.Add(New RadTreeNode("1.1") With {.CheckType = CheckType.RadioButton, .Checked = True, .CheckState = ToggleState.Indeterminate})
        node.Nodes.Add(New RadTreeNode("1.2") With {.CheckType = CheckType.RadioButton})
        node.Nodes.Add(New RadTreeNode("1.3") With {.CheckType = CheckType.RadioButton})
        node = New RadTreeNode("2") With {.CheckType = CheckType.CheckBox, .Checked = True, .CheckState = ToggleState.Indeterminate}
        RadTreeView1.Nodes.Add(node)
        RadTreeView1.Nodes.Add(New RadTreeNode("3"))

    End Sub

 

Workaround:

    Sub New()

        InitializeComponent()
        Me.RadTreeView1.Nodes.Clear()
        Me.RadTreeView1.CheckBoxes = True

        Dim node = New RadTreeNode("1") With {.CheckType = CheckType.CheckBox, .Checked = True, .CheckState = ToggleState.Indeterminate}
        RadTreeView1.Nodes.Add(node)
        node.Nodes.Add(New RadTreeNode("1.1") With {.CheckType = CheckType.RadioButton, .Checked = True, .CheckState = ToggleState.Indeterminate})
        node.Nodes.Add(New RadTreeNode("1.2") With {.CheckType = CheckType.RadioButton})
        node.Nodes.Add(New RadTreeNode("1.3") With {.CheckType = CheckType.RadioButton})
        node = New RadTreeNode("2") With {.CheckType = CheckType.CheckBox, .Checked = True, .CheckState = ToggleState.Indeterminate}
        RadTreeView1.Nodes.Add(node)
        RadTreeView1.Nodes.Add(New RadTreeNode("3"))


        Me.RadTreeView1.ExpandAll()
         
    End Sub

    Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.RadTreeView1.CollapseAll()

    End Sub

 

Completed
Last Updated: 14 Oct 2019 10:29 by ADMIN
Release R3 2019 SP1

I've got a tree with multiple nodes like

document1

 -page 1 

  -page 2

document1

 -page 1 

  -page 2

  -page 3

...

document10

 -page 1 

  -page 2

Due to the size of the treeview, only 2 or 3 documents are on screen, the rest is scrolled. (manually added items, no dynamic or lazy loading)

Lets say I click page 2 of document one, hold the mouse button to select more and go down to the last document (the tree is automatically scrolled down, as expected)

But when I go back to review what I selected, only the last items on screen are selected (documents 9 and 10 for example).

When I try to do the same selection with the arrow keys and the shift key, it works fine, but not with the mouse.

Completed
Last Updated: 28 Aug 2019 11:36 by ADMIN
Release R3 2019
Created by: Kun
Comments: 1
Category: TreeView
Type: Bug Report
2

Hello,

I use radbreadcrumb as a group path explorer in my software. 

I associate it with a treeview. Please see the attache photos.

When I select a treeviewitem which has too much parent levels, the radbreadcrumb can not display the path completely.

I've tried autoscrollmargin and autoscrollminsize. No luck. Because my radbreadcrumb is in a splitcontainerpanel, the display size is changeable.

I expect a custom function can act like Windows Explorer (see the last attach photo). When there is no enough display space, only the last levels are shown.

 

PS. I've integrated the telerik solution from this post. And it works great. 

https://www.telerik.com/forums/getting-breadcrumb-to-act-like-windows-explorer-breadcrumb

 

Thank you by advance.

Kun

 

Completed
Last Updated: 01 Jul 2019 14:49 by ADMIN
Release R3 2019 (LIB 2019.2.708)

Hi there 

I found this issue in RadTreeView filtering

I have a 2-level text structure programmatically created

after creation I use the command

radtree.ExpandAll()

This is the only event handled

   

Private Sub txtFilter_TextChanged(sender As Object, e As EventArgs) Handles txtFilter.TextChanged

        radtreeNavigazione.Filter = txtFilter.Text

End Sub

When I set a filter with at least 4 letters and then I select the text in the filter box and press "back", the app freezes with cpu working at 50 %. 

 

I use this workaround to solve

Private Sub txtFilter_TextChanged(sender As Object, e As EventArgs) Handles txtFilter.TextChanged

        radtreeNavigazione.Filter = txtFilter.Text

End Sub

 

I use this workaround

Private Sub txtFilter_TextChanged(sender As Object, e As EventArgs) Handles txtFilter.TextChanged

      radtree.CollapseAll()       

      radtreeNavigazione.Filter = txtFilter.Text

      radtree.ExpandAll()

End Sub

 

In this way it works, but I wanted to report the issue.

Thank you in advance for your attention

 

Under Review
Last Updated: 12 Jun 2019 06:15 by ADMIN
Created by: avani
Comments: 1
Category: TreeView
Type: Bug Report
1

Hi All,

 

I have made User control for custom node, in this user control i have used following controls

1 RadLabel (no of control - 3)

2 RadPanel (no of control -1)

3 PictureBox (no of Control - 4 )

4 TableLayoutPanel (no of control -3)

Means i have used total 11 controls within my user control.

Height of usercontrol = 146

Width of Usercontrol = 595

 

I have taken RadTreeView and above UserControl added as Node,following properties of treeview is set

this.radTreeView1.DataSource = Staff.GetStaff();
            this.radTreeView1.ParentMember = "ParentID";
            this.radTreeView1.ChildMember = "ID";
            this.radTreeView1.DisplayMember = "Department";
            this.radTreeView1.CreateNodeElement += this.OnCreateNodeElement;

this.radTreeView1.TreeViewElement.AutoSizeItems = true;
            this.radTreeView1.ShowRootLines = false;
            this.radTreeView1.FullRowSelect = false;
            this.radTreeView1.ShowLines = true;
            this.radTreeView1.LineStyle = TreeLineStyle.Solid;
            this.radTreeView1.LineColor = Color.FromArgb(110, 153, 210);
            this.radTreeView1.TreeIndent = 50;

this.radTreeView1.ExpandAll();

 

But when i run the code it shows like this means my control is not displaying and the property "AutoSizeItems" is not working.

 

hope for quick reply

Completed
Last Updated: 23 May 2019 13:20 by ADMIN
Release R2 2019 SP1 (LIB 2019.2.527)

Afternoon

 

We have a RadTReeView that we drag nodes around to reorder within the same treeview.

There are about 2000 nodes in the tree that is a self referencing data bound and goes about 15 levels deep at some parts of the tree

When we click left mouse down (keeping it down) to drag and drop reorder a node, using the mouse wheel to scroll the tree up or down does not work anymore

We want to for instance drag a node from a location to another location outside the current view, using the mouse wheel to navigate the tree view up and down. This used to work, but not after upgrading to the new 2019 telerik.

Is there a tree view control option that needs to be toggled for this to work?

Thank you

Theo

Completed
Last Updated: 23 May 2019 13:19 by ADMIN
Release R2 2019 SP1 (LIB 2019.2.527)
To reproduce:
- Open the Property builder, add some nodes and disable them.
- There is no way to enable them at design time. 

Workaround. 
Disable the nodes at runtime.
Unplanned
Last Updated: 16 May 2019 05:06 by ADMIN
To reproduce: add a RadTreeView and a RadBreadCrumb and apply the MaterialTeal theme. Refer to the attached screenshot illustrating the wrong font of the selected item.

Workaround:

    public partial class RadForm1 : Telerik.WinControls.UI.RadForm
    {
        public RadForm1()
        {
            InitializeComponent(); 

            ThemeResolutionService.ApplicationThemeName = "MaterialTeal";

            this.radTreeView1.NodeFormatting += radTreeView1_NodeFormatting;
            this.radTreeView1.SelectedNodeChanged += radTreeView1_SelectedNodeChanged; 
        }
 
        private void UpdateFont()
        {
            foreach (RadSplitButtonElement item in this.radBreadCrumb1.BreadCrumbElement.Items)
            {
                foreach (RadMenuItem menuItem in item.Items)
                {
                    if (this.radTreeView1.SelectedNode != null && menuItem.Text == this.radTreeView1.SelectedNode.Text)
                    {
                        menuItem.Font = new Font(f.FontFamily,f.Size, FontStyle.Bold);
                    }
                }
            }
        }
        
        private void radTreeView1_SelectedNodeChanged(object sender, Telerik.WinControls.UI.RadTreeViewEventArgs e)
        {
            UpdateFont();
        }

        Font f = null;

        private void radTreeView1_NodeFormatting(object sender, Telerik.WinControls.UI.TreeNodeFormattingEventArgs e)
        {
            f = e.NodeElement.ContentElement.Font;
        }
Completed
Last Updated: 27 Mar 2019 14:47 by Dimitar

Hi there, through out our app we use the treeview everywhere - but we have had this issue where it crashes when someone right clicks on the treeview where there is no node. This crash happens on the "ContextMenuOpening" event when we try to use e.TreeElement. This is because, on the telerik side of things, the getter for that property is throwing a NullReferenceException (see attached screenshot)

 

I think this is happening because in your RadTreeViewCancelEventArgs.cs it is this:

        public RadTreeViewElement TreeElement
        {
            get { return node.TreeViewElement; }
        }

        public RadTreeView TreeView
        {
            get { return node.TreeView; }
        }

But since node == null, it throws the exception. It probably should check for null, and if node is null, return a null for those properties - so we can use null conditional operator to check stuff. We have a workaround but it is just lots of copy and paste of things.

Completed
Last Updated: 28 Dec 2018 06:23 by ADMIN
How to reproduce: 

   public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

       
        private void Form1_Load(object sender, EventArgs e)
        {

            radTreeView1.CheckBoxes = true;
            radTreeView1.TriStateMode = true;

            var rootNode = new RadTreeNode("Root Node");
            
            radTreeView1.Nodes.Add(rootNode);

            // Create two parent nodes
            var parentNode1 = new RadTreeNode("First Parent");
            var parentNode2 = new RadTreeNode("Second Parent");

            // Add the parent nodes to tree view's nodes collection
            rootNode.Nodes.AddRange(parentNode1, parentNode2);
            
            
            // Create a child node
            var radTreeNodes2 = new List<RadTreeNode>
            {
                new RadTreeNode("nA.1"),
                new RadTreeNode("nB.2"),
                new RadTreeNode("nC.3"),
                new RadTreeNode("nD.4"),
                new RadTreeNode("nE.5"),
            };
            
            var radTreeNodes = new List<RadTreeNode>
            {
                new RadTreeNode("nA.1"),
                new RadTreeNode("nB.2"),
                new RadTreeNode("nC.3"),
                new RadTreeNode("nD.4"),
                new RadTreeNode("nE.5"),
            };
            
            // Add the child node to the first parent's nodes collection
            parentNode1.Nodes.AddRange(radTreeNodes);
           
            // Remove the child from the first parent collection and add it to the second parent nodes collection
            //parentNode1.Nodes.Remove(childNode);
            parentNode2.Nodes.AddRange(radTreeNodes2);
            rootNode.ExpandAll();
            rootNode.Checked = true;

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            radTreeView1.Filter = textBox1.Text;

            if(radTreeView1.TopNode != null)
                radTreeView1.TopNode.ExpandAll();
        }
    }
Declined
Last Updated: 10 Dec 2018 08:57 by Rene
To reproduce: please refer to the attached gif files with the different versions of the Telerik UI for WinForms suite . You will notice that while you are dragging a node the default cursor is an arrow with a small rectangle. If you hold the Ctrl key pressed while dragging  the node, the default cursor is an arrow with a small rectangle and '+'. With the latest version, the '+' sign is missing when you hold the Ctrl key. 
Unplanned
Last Updated: 15 Nov 2018 11:37 by ADMIN
To reproduce:
private void RadTreeView1_NodeCheckedChanging(object sender, Telerik.WinControls.UI.RadTreeViewCancelEventArgs e)
{
    Console.WriteLine(e.Action);
}

The action is always unknown.
Declined
Last Updated: 06 Nov 2018 12:29 by ADMIN
To reproduce: please refer to the attached sample project and try to reorder a node. You will notice that the message box is not rendered properly.

        //case 2
        private void DragDropService_PreviewDragDrop(object sender, RadDropEventArgs e)
        {
             e.Handled = true;
            RadMessageBox.Show(this, "Showing a messagebox under dragending doesn't work correctly.");
        }

        //case 1
        private void radTreeView1_DragEnding(object sender, Telerik.WinControls.UI.RadTreeViewDragCancelEventArgs e)
        {
            //e.Cancel = true;
            //RadMessageBox.Show(this, "Showing a messagebox under dragending doesn't work correctly.");
        }

Workaround: subscribe to the TreeViewElement.DragDropService.PreviewDragDrop and set the Handled argument to true if you want to cancel the drop operation. Then, handle the TreeViewElement.DragDropService.Stopped event and show the desired message.

        public Form1()
        {
            InitializeComponent();
            
            this.radTreeView1.TreeViewElement.DragDropService.PreviewDragDrop += DragDropService_PreviewDragDrop;
            this.radTreeView1.TreeViewElement.DragDropService.Stopped+=DragDropService_Stopped;
        }

        private void DragDropService_Stopped(object sender, EventArgs e)
        {
            
            RadMessageBox.Show(this, "Showing a messagebox under dragending doesn't work correctly.");
        }
 
        private void DragDropService_PreviewDragDrop(object sender, RadDropEventArgs e)
        {
            e.Handled = true;
        }
Completed
Last Updated: 31 Oct 2018 12:27 by Dimitar
To reproduce:

Run the attached application. Drag Node 2 to after Node 4 while holding down the Alt key. Note that the Node 2 copy is inserted before Node 4.

When Node 2 is dragged to after Node 4 without holding down the Alt key, Node 2 is correctly moved to after Node 4.

Workaround: you can modify the TreeViewDragDropService and control at what position exactly to be inserted the dragged node:

https://docs.telerik.com/devtools/winforms/treeview/drag-and-drop/modify-the-dragdropservice-behavior
https://docs.telerik.com/devtools/winforms/treeview/drag-and-drop/drag-and-drop-in-bound-mode
Completed
Last Updated: 30 Oct 2018 08:56 by Dimitar
To reproduce: use the following code snippet. You will notice that mnemonics are displayed.

        public RadForm1()
        {
            InitializeComponent();
            new RadControlSpyForm().Show();

            this.radTreeView1.DisplayMember = "name";
            this.radTreeView1.ParentMember = "pid";
            this.radTreeView1.ChildMember = "id";
            this.radTreeView1.DataSource = this.GetSampleData();
           
            this.radTreeView1.NodeFormatting += radTreeView1_NodeFormatting;
            this.radTreeView1.SelectedNodeChanged += radTreeView1_SelectedNodeChanged;
            
            this.radBreadCrumb1.DefaultTreeView = this.radTreeView1;
        }

        private void radTreeView1_SelectedNodeChanged(object sender, Telerik.WinControls.UI.RadTreeViewEventArgs e)
        {
            foreach (RadSplitButtonElement item in this.radBreadCrumb1.BreadCrumbElement.Items)
            {
                item.ActionButton.TextElement.UseMnemonic = false;
            }
        }
         
        private void radTreeView1_NodeFormatting(object sender, Telerik.WinControls.UI.TreeNodeFormattingEventArgs e)
        {
            e.NodeElement.ContentElement.UseMnemonic = false; 
        }

        private DataTable GetSampleData()
        {
            DataTable dt = new DataTable();

            DataColumn dc = new DataColumn();
            dc.ColumnName = "id";
            dc.DataType = typeof(int);
            dt.Columns.Add(dc);

            DataColumn dc1 = new DataColumn();
            dc1.ColumnName = "name";
            dc1.DataType = typeof(string);
            dt.Columns.Add(dc1);

            DataColumn dc2 = new DataColumn();
            dc2.ColumnName = "pid";
            dc2.DataType = typeof(int);
            dt.Columns.Add(dc2);

            DataRow dr = dt.NewRow();
            dr[0] = 0;
            dr[1] = "Hello & Goodbye";
            dr[2] = DBNull.Value;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[0] = 1;
            dr[1] = @"&C:\";
            dr[2] = 0;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[0] = 2;
            dr[1] = @"&D:\";
            dr[2] = 0;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[0] = 3;
            dr[1] = "&Program Files";
            dr[2] = 1;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[0] = 4;
            dr[1] = "M&icrosoft";
            dr[2] = 3;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[0] = 5;
            dr[1] = "&Telerik";
            dr[2] = 3;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[0] = 6;
            dr[1] = "&WINDOWS";
            dr[2] = 1;
            dt.Rows.Add(dr);

            return dt;
        }

Workaround: set the DefaultTreeView before subscribing to the treeview events.

            this.radBreadCrumb1.DefaultTreeView = this.radTreeView1;
            this.radTreeView1.NodeFormatting += radTreeView1_NodeFormatting;
            this.radTreeView1.SelectedNodeChanged += radTreeView1_SelectedNodeChanged;
Completed
Last Updated: 27 Sep 2018 09:55 by Dimitar
To reproduce:

        public RadForm1()
        {
            InitializeComponent();

            BindingList<Item> items = new BindingList<Item>();
            items.Add(new Item(0,"Root", CheckState.Checked,-1));
            for (int i = 1; i < 5; i++)
            {
                items.Add(new Item(i, "Node" + i, CheckState.Checked,0));
            }
          
            this.radTreeView1.CheckBoxes = true;
            this.radTreeView1.DisplayMember = "Name";
            this.radTreeView1.ChildMember = "Id";
            this.radTreeView1.ParentMember = "ParentId";
            this.radTreeView1.CheckedMember = "IsActive";
            this.radTreeView1.AutoCheckChildNodes = true;
            this.radTreeView1.TriStateMode = true;
            this.radTreeView1.DataSource = items;
            this.radTreeView1.ExpandAll();
        }

        public class Item
        {
            public int Id { get; set; }

            public string Name { get; set; }

            public CheckState IsActive { get; set; }

            public int ParentId { get; set; }

            public Item(int id, string name, CheckState isActive, int parentId)
            {
                this.Id = id;
                this.Name = name;
                this.IsActive = isActive;
                this.ParentId = parentId;
            }
        }

Workaround: implement a TypeConverter that can handle converting from/to System.Windows.Forms.CheckState. A sample implementation for creating a custom TypeConverter is demonstrated in the following help article: https://docs.telerik.com/devtools/winforms/treeview/data-binding/togglestateconverter
Completed
Last Updated: 27 Sep 2018 09:23 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 2
Category: TreeView
Type: Bug Report
2
To reproduce: please run the attached sample project and follow the steps in the attached sample gif file.

Workaround: instead of filtering the nodes, you can manipulate the RadTreeNode.Visible property considering the filter criteria and whether the node contains a child that matches the filter. 
        public RadForm1()
        {
            InitializeComponent();

            this.radTreeView1.ShowLines = true; 
        }

        private void FilterNode(RadTreeNode node)
        {
            bool atLeastOneChildMatches = false;
            ChildNodeContains(this.radTextBox1.Text.ToLower(), node.Nodes, ref atLeastOneChildMatches);
            if (node.Text.ToLower().Contains(this.radTextBox1.Text.ToLower()) || atLeastOneChildMatches)
            {
                node.Visible = true;
            }
            else
            {
                node.Visible = false;
            }
        }

        private void ChildNodeContains(string filterCritria, RadTreeNodeCollection nodes, ref bool atLeastOneChildMatches)
        {
            foreach (RadTreeNode node in nodes)
            {
                if (node.Text.ToLower().Contains(filterCritria))
                {
                    atLeastOneChildMatches = true;
                    return;
                }
                if (atLeastOneChildMatches == false && node.Nodes.Count > 0)
                {
                    ChildNodeContains(filterCritria, node.Nodes, ref atLeastOneChildMatches);
                }
            }
        }

        private void radTextBox1_TextChanged(object sender, EventArgs e)
        {
            PerformFilter(this.radTreeView1.Nodes);
        }

        private void PerformFilter(RadTreeNodeCollection nodes)
        {
            foreach (RadTreeNode node in nodes)
            {
                FilterNode(node);
                if (node.Nodes.Count > 0)
                {
                    PerformFilter(node.Nodes);
                }
            }
        }
1 2 3 4 5 6