Completed
Last Updated: 30 Sep 2014 07:43 by Jesse Dyck
1. Create a new project with RadTreeView
2. Handle the NodeCheckedChanged event
3. Call the ExpandAll method for the checked node when handling this event
4. Run the project and check the first node
Completed
Last Updated: 29 Sep 2014 08:25 by ADMIN
To reproduce: 
1. Add a RadTreeView and populate it with nodes at design time.
2. Use the following code snippet:

Me.RadTreeView1.AllowDefaultContextMenu = True
Me.RadTreeView1.RightToLeft = Windows.Forms.RightToLeft.Yes

When you run the application and right click over a node, the context menu is not in RTL mode.

Workaround: use the ContextMenuOpening event and set the TreeViewDefaultContextMenu.RightToLeft property to Yes.

Private Sub RadTreeView1_ContextMenuOpening(sender As Object, e As TreeViewContextMenuOpeningEventArgs) _
    Handles RadTreeView1.ContextMenuOpening
    Dim defaultMenu As TreeViewDefaultContextMenu = TryCast(e.Menu, TreeViewDefaultContextMenu)
    If defaultMenu IsNot Nothing Then
        defaultMenu.DropDown.RightToLeft = Windows.Forms.RightToLeft.Yes
    End If
End Sub
Completed
Last Updated: 03 Sep 2014 07:34 by ADMIN
Workaround:

 class MyTreeView : RadTreeView
        {
            protected override RadTreeViewElement CreateTreeViewElement()
            {
                return new MyTreeViewElement();
            }

            public override string ThemeClassName
            {
                get
                {
                    return typeof(RadTreeView).FullName;
                }
            }
        }

        class MyTreeViewElement : RadTreeViewElement
        {
            bool IsPerformingEndEdit = false;
            protected override bool EndEditCore(bool commitChanges)
            {
                if (!IsEditing || IsPerformingEndEdit)
                {
                    return false;
                }

                TreeNodeElement nodeElement = GetElement(this.SelectedNode);
                if (nodeElement == null)
                {
                    return false;
                }

                this.IsPerformingEndEdit = true;

                if (commitChanges && this.ActiveEditor.IsModified)
                {
                    SaveEditorValue(nodeElement, this.ActiveEditor.Value);
                }

                this.ActiveEditor.EndEdit();
                nodeElement.RemoveEditor(this.ActiveEditor);

                this.InvalidateMeasure();
                UpdateLayout();

                OnEdited(new TreeNodeEditedEventArgs(nodeElement, ActiveEditor, !commitChanges));

                typeof(RadTreeViewElement).GetField("activeEditor", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(this, null); 

                this.IsPerformingEndEdit = false;

                return false;
            }

            protected override Type ThemeEffectiveType
            {
                get
                {
                    return typeof(RadTreeViewElement);
                }
            }
        }
Completed
Last Updated: 05 Aug 2014 13:13 by ADMIN
I can type to select a node.  For example, if I click to select the Car node, then type "V", selection jumps to the "Van" node.  I can right-arrow to expand, then type "U" to select the "Useful" node.

Resolution: 
Added two new properties: KeyboardSearchEnabled and KeyboardSearchResetInterval. When set the KeyboardSearchEnabled property to true, user can navigate to an item by typing when RadTreeView is focused. You can set how long the user must wait before searching with the keyboard is reset using the KeyboardSearchResetInterval property. 
Declined
Last Updated: 09 Jul 2014 08:07 by ADMIN
Created by: Bryan
Comments: 1
Category: TreeView
Type: Bug Report
0
it appears to work okay on android, but I can't use it from an ipad
Completed
Last Updated: 19 Jun 2014 12:54 by ADMIN
RadTreeView - Traverser throws exception if you clear and recreate all sub nodes of some node.  

Steps to reproduce:
1. Create RadTreeView with one node.
2. Add 100 sub nodes.
3. Clear the sub nodes.
4. Move scroll.

WorkAround:

    private void RefreshNodes()
    {
      
      radTreeView1.BeginUpdate();

      this.radTreeView1.TreeViewElement.Scroller.Traverser.Position = groupNode;
      this.radTreeView1.TreeViewElement.Scroller.Traverser.Reset();

      this.radTreeView1.SelectedNodes.Clear();
      groupNode.Nodes.Clear();
 
      AddNodes(groupNode.Nodes, 1, 100);

      groupNode.Expand();
      radTreeView1.EndUpdate();

      this.radTreeView1.TreeViewElement.Update(RadTreeViewElement.UpdateActions.Reset);
    }
Completed
Last Updated: 12 Jun 2014 20:26 by ADMIN
To reproduce : add a RadTreeView with several nodes and use the following code snippet:

this.radTreeView1.AllowDragDrop = true;
this.TopMost = true;

Note that dragging a node will no longer display the "DropHint" line.

Workaround:

class CustomDragDropService : TreeViewDragDropService
{
    public CustomDragDropService(RadTreeViewElement owner) : base(owner)
    {
    }

    protected override void UpdateHintPosition(Point mousePosition)
    {
        FieldInfo fi = typeof(TreeViewDragDropService).GetField("dropHintWindow",
            BindingFlags.NonPublic | BindingFlags.Instance);
       
        RadLayeredWindow window = fi.GetValue(this) as RadLayeredWindow;
        window.TopMost = true;
        base.UpdateHintPosition(mousePosition);
    }
}

class CustomTreeViewElement : RadTreeViewElement
{
    //Enable themeing for the element
    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadTreeViewElement);
        }
    }

    //Replace the default drag drop service with the custom one
    protected override TreeViewDragDropService CreateDragDropService()
    {
        return new CustomDragDropService(this);
    }
}

class CustomTreeView : RadTreeView
{
    //Replace the default element with the custom one
    protected override RadTreeViewElement CreateTreeViewElement()
    {
        return new CustomTreeViewElement();
    }

    //Enable theming for the control
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadTreeView).FullName;
        }
    }
}
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
NullReferenceException is thrown, when end edit performs in RadTreeView. To reproduce the issue:
1. Bind the grid to table
2. Add new record programmatically
3. Call BeginEdit of the added node
4. Edit the text of the node from the editor
5. Press ENTER
6. Exception is thrown.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
Adding or removing node through BindingList API collapse all nodes in self-referencing hierarchy in RadTreeView.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
If you perform radTreeView.Nodes.Clear method and then load new nodes by using the LoadXML method, the drag and drop behavior is corrupted.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
The RadTreeView throws exception when the BindingSource.CancelEdit is invoked.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
Vertical scroll bar is not shown if the expanded node's child nodes have been collapsed in NodeExpandChanged event previously. The code snippet bellow causes the issue:


void radTreeView1_NodeExpandedChanged(object sender, RadTreeViewEventArgs e)
{
    bool isExpanded = e.Node.Expanded;

    if (!isExpanded)
    {
        foreach (RadTreeNode node in e.Node.Nodes)
        {
            node.Expanded = false;
        }
    }
}
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
When the RadTreeView is disabled, nodes text is rendered as bold text.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
The SelectedNodes collection is not cleared, when the clear all nodes in single selection mode.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
The node find methods of RadTreeView should not perform over the inernal RootTreeNode.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
If you add nodes in the following manner:

  Private arCategories() As String = {"Not Used", "Category1", "Category2", "Category3", "Category4", "Category5"}

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim node As RadTreeNode

    node = Me.RadTreeView1.Nodes.Add(arCategories(1))
    node.Image = My.Resources.img1
    AddItems(node)

    node = Me.RadTreeView1.Nodes.Add(arCategories(2))
    node.Image = My.Resources.img2
    AddItems(node)

    node = Me.RadTreeView1.Nodes.Add(arCategories(3))
    node.Image = My.Resources.img3
    AddItems(node)

    node = Me.RadTreeView1.Nodes.Add(arCategories(4))
    node.Image = My.Resources.img4
    AddItems(node)

    node = Me.RadTreeView1.Nodes.Add(arCategories(5))
    node.Image = My.Resources.img5
    AddItems(node)

    For Each nd As RadTreeNode In Me.RadTreeView1.Nodes
      For Each n As RadTreeNode In nd.Nodes
        n.Image = nd.Image
      Next
    Next
  End Sub

  Private Sub AddItems(ByVal node As RadTreeNode)
    For i As Integer = 1 To 4
      node.Nodes.Add("Item" & i)
    Next
  End Sub

the vertical scroll is not calculated correctly.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
The RadTreeView throws NullReferenceException when scrolling is performed if it is loaded from xml document.
Loading the following xml document causes the issue:
<TreeView xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ShowLines="true">
<Nodes Expanded="true" Text="Test1" ImageIndex="0">
<Nodes Expanded="true" Text="Test2" ImageIndex="0">
<Nodes Expanded="true" Text="Test3" ImageIndex="2">
<Nodes Expanded="true" Text="Test4" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test5" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test6" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test7" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
<Nodes Expanded="true" Text="Test18" ImageIndex="1">
<Nodes Text="Test9" ImageIndex="3" />
<Nodes Text="Test10" ImageIndex="3" />
</Nodes>
<Nodes Expanded="true" Text="Test11" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test12" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test13" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
<Nodes Expanded="true" Text="Test14" ImageIndex="1">
<Nodes Text="Test15" ImageIndex="3" />
<Nodes Text="Test16" ImageIndex="3" />
<Nodes Expanded="true" Text="Test17" ImageIndex="4">
<Nodes Expanded="true" Text="Test18" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test19" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test20" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
</Nodes>
</Nodes>
</Nodes>
<Nodes Expanded="true" Text="Test20" ImageIndex="2">
<Nodes Expanded="true" Text="Test21" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test22" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test23" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
<Nodes Expanded="true" Text="Test24" ImageIndex="1">
<Nodes Text="Test25" ImageIndex="3" />
<Nodes Text="Test26" ImageIndex="3" />
<Nodes Text="Test27" ImageIndex="3" />
<Nodes Text="Test28" ImageIndex="3" />
</Nodes>
<Nodes Expanded="true" Text="Test29" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test30" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test31" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
</Nodes>
</Nodes>
<Nodes Expanded="true" Text="Test32" ImageIndex="0">
</Nodes>
<Nodes Expanded="true" Text="Test33" ImageIndex="0">
<Nodes Expanded="true" Text="Test34" ImageIndex="0">
<Nodes Expanded="true" Text="Test35" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test36" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test37" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test38" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
<Nodes Expanded="true" Text="Test39" ImageIndex="1">
<Nodes Text="Test40" ImageIndex="3" />
<Nodes Text="Test41" ImageIndex="3" />
</Nodes>
<Nodes Expanded="true" Text="Test42" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test43" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test44" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test45" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test46" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
</Nodes>
<Nodes Expanded="true" Text="Test47" ImageIndex="0">
<Nodes Expanded="true" Text="Test48" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test49" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test50" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
<Nodes Expanded="true" Text="Test51" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test52" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test53" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
</Nodes>
<Nodes Expanded="true" Text="Test54" ImageIndex="0">
<Nodes Expanded="true" Text="Test55" ImageIndex="1" BackColor="232,255,232" NumberOfColors="1">
<Nodes Text="Test56" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test57" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test58" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test59" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
<Nodes Text="Test60" ImageIndex="3" BackColor="232,255,232" NumberOfColors="1" />
</Nodes>
</Nodes>
</Nodes>
</Nodes>
</TreeView>
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
When you change the dock state of window in RadDock, the hosted RadTreeView shows only the nodes from first level, if data relation binding is used.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
Add TreeViewXml property to RadTreeView that allows xml serialization by string type