|
A little late to the game but...I remember using this control quite a few years ago.
Recently, I needed similar functionality so I pulled it out and dusted it off.
My issue with the original implementation was Ted had added code to always give the Parent of a SubItem focus. In my implementation, I needed to add a NumberUpDown control as the SubItem that the user can enter values. The original implementation doesn't allow controls added as SubItems to get focus (at least not easily).
In ContainerListViewObject.vb(at or around line 1297) the _controlClicked() method calls Me._invalidateParent(True) which has three lines that direct focus back to the Parent. If you comment out that call to Me._invalidateParent(True) your control SubItem will now keep focus and you will then be able to type values in.
Private Sub _controlClicked(ByVal sender As Object, ByVal e As EventArgs)
'Me._invalidateParent(True)
End Sub
This worked for my implementation and had no adverse effects on any other aspect of my app.
Your implementation may be different and need a more elaborate solution.
But, just wanted to throw it out there to save someone a little time if they are needing the same functionality.
|
|
|
|
|
Hi,
This control is ideal for what I need; just cant seem to add it to a VB 2019 project. Tried to add the control to .NET framework in the toolbox but get error message "the control was added but not enabled" and "make sure the controls to add are compatible with the current designer and .NET version".
Just beginning with vb.net so no idea how to check the designer is compatible. .NET only has three possibilities for 'targtet framework' .net core 3.0 3.1 and .net 5.0
Any help would be greatly appreciated
|
|
|
|
|
I would like to drag a child node to make it a root-level node (no parent node). The TreeListView control’s ItemDrop method won’t do this. If anyone has figured out how can this can be done, please advise.
|
|
|
|
|
Hi,
This TreeListView is working perfect for what I was trying to do and I am glad I found your project after a long search over the internet. Thank you for that!
I am now trying to adjust the Font of nodes. The ColumnHeaders is not an issue as they can be done in the Designer, but I add the Nodes at runtime and I seem to be unable to address the Font property of the Nodes.
Does anyone have a solution for this? I have read the post on Quote: public virtual bool UseItemStyleForSubItems but this did not help me any further.
FYI I use vb.net in Visual Studio 2015
|
|
|
|
|
Hi there,
Thanks for your excellent solution.
Is it possible to highlight multiple nodes at one time? Is it also possible to identify a specific node id based on the line selected?
Thanks,
E
EK
|
|
|
|
|
Excellent module, been using it on my little project for the last few months, now, facing little to no issues with it, easily resolved by the added help!
I've recently been adding tooltips to the app (1st line "Help") but can't seem to point anything to individual nodes on MouseHover. The TreeListView doesn't accept Tooltips and pointing the event to a Tag just crashes the app on launch with the error:
Quote: System.InvalidCastException: 'Cannot associate 'System.EventArgs' to the type 'System.Windows.Forms.MouseEventArgs'.'
Call me dumb, but I can't figure this one out, if it is, indeed, possible.
|
|
|
|
|
I cannot seem to programmatically edit a cell (subitem) in the tree view.
I've tried the following:
tlvTasks.SelectedItems.Item(0).BeginEdit(4) 'Use this to edit the subitems
tlvTasks.SelectedItems.Item(0).SubItems(4).Text = "New cell data"
tlvTasks.EditedObject.SubItems(4).Text = "Also tried this line of code"
tlvTasks.SelectedItems.Item(0).EndEdit()
I can see the cell's text field change in the variable watch, however, it doesn't update in the control. Any help is appreciated.
|
|
|
|
|
multi-column spanning would add a final touch to an already elite control. keep up the good work!
|
|
|
|
|
I have created an array of tree list nodes and I am trying to update a single index in the array. However, when I do this, all the elements in the array are updated to this new value. Is this a bug or is it something I am doing wrong?
Here is my code:
Public DocNames As New TreeListNode
Dim DocName(UBound(Document_Names)) As TreeListNode
For i = 0 To UBound(Document_Names)
DocNames.Text = Document_Names(i)
DocName(i) = DocNames
Next
It is the line: DocName(i) = DocNames
As I'm debugging, I see that this makes all the elements of the array equal to DocNames, not just the ith element.
|
|
|
|
|
Whenever I try to parse all/multiple SelectedItems in the TreeListView (either using For index = 0 to SelectedItems.count, or For each item in SelectedItems), after the first iteration (which is successful), the SelectedItems collection returns as empty (Count = 0) and the application returns the usual error for index out of range. Does this happen to anyone else?
|
|
|
|
|
I see that this component support to sort(order) first column only,
not support sort other columns (from 2rd column to end).
Have you got solution for this problem ?
|
|
|
|
|
Has got anyone meet it ? Solution fot it.
I want to sort "age" column, but i can not.
modified 16-Jul-15 12:19pm.
|
|
|
|
|
How i can align text on right, the property ownerdraw is disabled
|
|
|
|
|
To be able to set subitems alignment and font you need to set node's property UseItemStyleForSubItems to false:
public virtual bool UseItemStyleForSubItems
Description("Determines whether the TextAlign, Font, ForeColor, and BackColor properties for the item are used for all its subitems.")
|
|
|
|
|
Hi when I update the treelistview and all the nodes is expanded. If I checked the very last node and update treelistview, I get a red cross over the control. This does not happen when the list is node expanded(collapseAll) and also not when I select the first node.
Does anybody know how to fix this?
|
|
|
|
|
So i have added over a hundred items to the TreeListView and everything works fine but when i add more children the the current size on the screen can show then when i scroll down to see them it jumps to the next node at the parent level. i tried using the mouse wheel and the scroll bar on the right, both of them having the same effect. If i click on one of the children and use the keyboard arrow keys to scroll down then it will move down to where i need it but i need to be able to use the mouse to show these nodes. Does anyone know how to fix this issue?
|
|
|
|
|
Hey there!
I really appreciate your work - it's pretty usefull but I need to do something more specific...
I need to resize a whole row due to a colum with multilines like:
A | B | C | D | entry_1 | val_1 | alv_1 | lva_1a | | | | lva_1b | | | | lva_1c | entry_2 | val_2 | alv_2 | lva_2a | | | | lva_2b | | | | lva_2c |
I tried to place a Control (ListView and Textbox with Multilines=true) but it still displays the .Text-Property! Is there a way to realize what I want to do?
Thanks in advance
|
|
|
|
|
Hello,
I use this control in one of my projects.
I found 2 bugs and I add 1 feature :
1) Bug :
When I pressed a Home ou End key and I not have any item selected, it raised a NullReferenceException in function : TreeListView._moveToIndex
Correction :
Replace lines :
Me._CurNode.Focused = False
Me._FirstSelectedNode.Focused = False
by :
If Me._CurNode IsNot Nothing Then Me._CurNode.Focused = False
If Me._FirstSelectedNode IsNot Nothing Then Me._FirstSelectedNode.Focused = False
2) bug :
When I expand child nodes before expand parent node, it miscount visible items.
I have not enough time to corrected that, but the way to reproduct the bug is easy :
Example :
Inherits a class from WinControls.ListView.TreeListNode.
Make a Sub UpdateNode (for example)
Public Sub UpdateNode()
ExpandChilds
ExpandMe
End sub
So, visible childs nodes are count as many times as they are expand parent.
3) New feature
Expand and collapse all nodes/sub nodes by keys * and / (as the classic TreeNode control)
In the function
TreeListView.OnKeyDown
Add in the Select Case structure :
Case Keys.Multiply
If SelectedItems IsNot Nothing AndAlso SelectedItems.Count > 0 Then
For Each lItem As TreeListNode In SelectedItems
lItem.ExpandAll()
Next
End If
Case Keys.Divide
If SelectedItems IsNot Nothing AndAlso SelectedItems.Count > 0 Then
For Each lItem As TreeListNode In SelectedItems
lItem.CollapseAll()
Next
End If
Thanks for this usefull control.
|
|
|
|
|
Hi Ted Osberg. Thank you for your project. It helps me much in my work.
But i found something wrong when resize treelistview. If i move the scrollbar to the right and maximize the form, when left click to subitem (i added about 15 subitem column) , it isn't selected. something wrongs and i cant solve this problem. I try to make hscroll always in the left, but subitem cannot be selected. Can you give me an idea to solve this problem. Thanks
|
|
|
|
|
I am trying to figure out a way to display the selected node if it is not being displayed. Any help would be appriciated.
|
|
|
|
|
I'm experiencing a similar issue. I've tried using the node variable directly and casting SelectedItems(x) to treelistnode. I've tried using the node object and RowIndex property in the EnsureVisible parameter to find location. Using the RowIndex property works sporadically - often it throws OutOfRange error with this code:
If Not nd Is Nothing Then
tlvSystems.EnsureVisible(DirectCast(tlvSystems.SelectedItems(0), TreeListNode).RowIndex)
End If
modified 31-Mar-15 12:40pm.
|
|
|
|
|
Great work! It will be better if the checkbox becomes Three-State. The state changes automatically if the state of parent node or child node changes.
|
|
|
|
|
Hi experts, just want to ask how can I change the icon in the subitems?
modified 11-Oct-12 0:03am.
|
|
|
|
|
I added an image list to the TreeListView, but I fail to display other images than the one with the index in the property "DefaultImageIndex" (default 0). If I switch the property "DefaultFolderImages" to false, there won't be displayed any icons at all. If I switch it to true and add an image list (property "ImageList"), which contains of course several images, only the image with the index in the property "DefaultImageIndex" (default 0) is displayed, no matter how I create the nodes or set their properties. An example:
TreeListNode node = new TreeListNode();
node.Text = "Image Index = 1";
node.ImageIndex = 1;
node.SelectedImageIndex = 1;
treeListView1.Nodes.Add(node);
However, displayed is the image with the index in the property "DefaultImageIndex" (default 0).
Any hints? Advices?
|
|
|
|
|
I want this too. Please help us about this please.
Also thus is possible to add two imageIcon in the same row?
|
|
|
|