|
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?
|
|
|
|
|
i have the same issue,any help regarding to this?
|
|
|
|
|
Hi experts, thus possible to hide a certain column using this treeListView?
Regards,
|
|
|
|
|
For the solution:
.Add("AssetCode", 10, HorizontalAlignment.Center).Hidden = True
|
|
|
|
|
Hi experts, it is possible to put a gridlines in this TreeListView?
|
|
|
|
|
As with the "AlphaComponent", the control has a "GridLines" property that you can set either via the VS Designer (GUI) or at runtime via code (ControlName.GridLines).
You can choose between:
None
Both
Column (default)
Row
So, if you wanted a SpreadSheet like view with total grids, you would select "Both". Note that this this control does NOT apply gridlines to the actual tree, only the "subitem" columns for each entry.
My personal preference is to keep the default Column entry and use an alternating node background color to provide visual aid to separate items. Though this approach can cause two rows of the same color to be next to each other depending on what's expanded/collapsed vs the order that the entries were added. But I find this to be less of a trouble than trying to tweak the drawing code.
|
|
|
|
|
Hi, how can I get the node index after I select the row?
|
|
|
|
|
I needed to do something similar when the user Right Clicks on the control.
I needed some Details about the selected node in order to turn on/off various
choices in the context menu....
Something like this works well for me:
Private Sub Control_MouseDown(sender as Object, e As System.Windows.Forms.MouseEventArgs) Handles blah blah
dim tlvNode as TreeListNode
tlvNode = TreeControlName.GetItemAt(e.Location)
if tlvNode IsNot Nothing then
tlvNode.Properties
msgbox(tlvNode.Index)
End If
End Sub
So basically, if you pass a set of coordinates to the Control.GetItemAt() function, it will return to you a Node object that you can use to access any available properties of that node, such as its Index value.
Another option is the ControlName.SelectedItems collection. If you don't allow "multi-select" then the current selected node is simply ControlName.SelectedItems(0).properties
Otherwise, you'll have a list of all selected nodes (SelectedItems(Index)) in the list.
|
|
|
|
|
Thanks for this.
But, while changing to DoubleClick. It doesn't allow it.
Private Sub Control_DoubleClick(ByVal Sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tlvMain.DoubleClick
Is there any workaround to get the index by double clicking it?
modified 20-Sep-12 21:23pm.
|
|
|
|
|
This works just fine for me with VB.Net on VS 2010:
Private Sub tlvMain_MouseDoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) _
Handles tlvMain.MouseDoubleClick
If tlvMain.GetItemAt(e.Location) IsNot Nothing Then
MsgBox(tlvMain.GetItemAt(e.Location).Index)
End If
End Sub
Be aware that almost every control that can contain "dead" or "white" space (area of a control that can, but does not contain an object) can mess up your code if you assume that the user clicked on a node, object, item, etc. For example, on a TreeView control, you have a space that can contain nodes, but may not. The user can interact with this space, so you need to validate objects you want to interact with. Thus, the above If/Then statement that checks to see if there is even a selected node to get properties of. Without these kind of checks, you will have very unstable programs.
modified 21-Sep-12 9:02am.
|
|
|
|
|
I want to alternate the background color of each visible row within the grid.
Currently, I set the background color of each node prior to adding them, but it displays very light and faint in the control. It's almost like the color is being washed out as though it was being displayed through a white object on top of the tree.
What am I doing wrong?
Edit:
I found the answer, the control has a property called "AlphaComponent". It is an overlay transparency factor that overides the alpha value of whatever color you choose. The default is 65 (out of 255 being no transparency vs 0 total transparency). I set the value to 255 and got the color I wanted.
modified 18-Sep-12 17:03pm.
|
|
|
|
|
Hi can you post your code please?
|
|
|
|
|
In Visual Studio, when you select the control on your form, in the "Properties" window for the control is a property called "AlphaComponent" which will have a default value of 65. I simply changed it to 255 to remove any "transparency" (fading) effect.
There was no "code" involved there.
Now, obviously, there a lot of ways of setting properties of the control/nodes
here is just a basic example of creating a node object, setting some properties
and adding it in the first level (root) of the tree:
dim tlvNode as new TreeListNode
dim RootNodeIndex as Integer
tlvNode.Text = "Whatever you want"
tlvNode.BackColor = vbColor.Blue
tlvNode.SubItems.Add("Text for the appropriate column(s)")
RootNodeIndex = TreeListControl.Nodes.Add(tlvNode)
The "AlphaComponent" property of the control will be applied against the color you specify
even if the color already has it's own "alpha" value. If left at the default level of 65, it has a very intense faded effect on highlight, row select and node background colors. Changing it to 255 (no fade effect) caused me to have to set a different "RowSelectColor" value for the control as the default Blue was way to bold without any fading.
|
|
|
|
|
Thanks for this dude. ![Thumbs Up | :thumbsup:](https://codeproject.global.ssl.fastly.net/script/Forums/Images/thumbs_up.gif)
|
|
|
|
|
I integrated your treelistview code in my VB project and works very well. However I sometime hit a condition where the treelistview disappears and shows a red "X". While debugging the code, I realized that this has to do with scrolling and collapsing the tree, so while the tree is scrolled to a lower position, you try to collapse a node, this causes an issue with a node wanting to be drawn, but it´s outside of the displayable area. I can provide more details, but wanted to know first if you ever came across this issue. Thx, SD
|
|
|
|
|
I got to this point simply by clicking a few times around in the treeview(colapsing and expanding) while horizontal scrollbar is visible.. ![Frown | :-(](https://codeproject.global.ssl.fastly.net/script/Forums/Images/smiley_frown.gif)
|
|
|
|
|
If multiple TreeListNodes are selected, and you then right-click on them, the selection clears (unless you're holding down shift/ctrl/whatever).
How can I make this behave like the standard ListView, where the selection is preserved on a right-click?
Thanks!
-Scott
|
|
|
|
|
in the Function _findFirstNode in TreeListView.vb module, correct the bug
Return Me._findFirstNode(aStartingNode.NextSiblingNode, aStartingPoint - ((KidsCount + 1) * 16))
to:
Return Me._findFirstNode(aStartingNode.NextSiblingNode, aStartingPoint - ((KidsCount + 1) * Me.RowHeight))
in order to adapt for RowHeight property
|
|
|
|
|
After selecting a Node, how can one get the Index of the selected Node. Is there any accessible Property? ![Confused | :confused:](https://codeproject.global.ssl.fastly.net/script/Forums/Images/smiley_confused.gif)
|
|
|
|
|
I love this control but the one thing I see missing is an auto size function for the columns in the treelistview. I know the normal listview doesn't seem to have it either but it would be great if the columns autosized as the control was resized.
Edit: I found that the regular ListView does have an auto size but when I try it with the TreeListView it doesn't work.
Does anyone have a solution?
modified 21-Jan-12 20:22pm.
|
|
|
|
|
Hi,
i'm need a solution to autoscroll to first selected node.
|
|
|
|
|
<a href=""></a>[<a href="" target="_blank"></<pre lang="sql">A good job done just as the project name "The treelistview to end all treelistviews"! Thanks a lot for your job! Some problems found here.
1.When an item is drag to drop another item, these two items is selected. Then next single-selection becomes a range-selection, just like pressed down shift key.
2.Multiselected drag-n-drop shuld be performed by shift key always pressing down. And the item draged should be the last selected item, or you will lost some items you just selected.</pre>
|
|
|
|
|
Have two images in the image list, and assign the first to the root node and second to the child node. When you expand the root node, the root node's image is changed to the child image.
|
|
|
|
|
In your previous version can be set Checkboxes=Recursive. In this version there is this possibility?
|
|
|
|