Introduction
This is an extended Gtk.TreeView, wich you can use more easy/faster.
Methods:
| void | selectNode | ( HTreeNode node ) | selects a specific node and move cursor on it |
| void | expandNode | ( HTreeNode node ) | expand a specific node |
| void | collapseNode | ( HTreeNode node ) | collapses a specific node |
| HTreeNode | getNodeFromIter | ( Gtk.TreeIter iter ) | gets the HTreeNode from a Gtk.TreeIter, else returns null |
Properties:
| bool | NodeIconVisible | if true, nodes have icon |
| bool | IsCheckBoxTree | if true, nodes have checkbox |
| bool | Editable | if true, nodes are editable |
| NodeCollection | Nodes | the node collection of the tree |
| HTreeNode | SelectedNodes | gets the selected nodes as an array |
| HTreeNode | SelectedNode | gets the selected node |
Events:
| NodeEventHandler | NodeExpanded | - raised after a node is expanded |
| NodeEventHandler | NodeCollapsed | - raised after a node is collapsed |
| NodeEventHandler | BeforeNodeExpand | - raised before a node is expanded |
| NodeEventHandler | BeforeNodeCollapse | - raised before a node is collapsed |
| NodeEventHandler | NodeEdited | - raised when an node's text is changed |
Details
//make the tree to show node icons and have checkboxes and to be editable
treeview.NodeIconVisible = true;
treeview.IsCheckBoxTree = true;
treeview.Editable = true;
//add a root element
HTreeNode root = new HTreeNode( "root node" );
//IMPORTANT: before adding childs, add base root elements to the treeview
treeview.Nodes.Add( root );
//lets add a few childs
root.Nodes.Add( new HTreeNode("child1") );
//lets add a node with icon
Gdk.Pixbuf icon = GraphUtil.pixbufFromStock("gtk-yes", Gtk.IconSize.Button );
root.Nodes.Add( new HTreeNode("child2", icon ) );
//add a node with a different icon when it's expanded
Gdk.Pixbuf icon_expanded = GraphUtil.pixbufFromStock("gtk-no", Gtk.IconSize.Button );
root.Nodes.Add( new HTreeNode("child3", icon, icon_expanded) );
//add a simple node that is checked
root.Nodes.Add( new HTreeNode("i'm checked!", true ) ); HTreeNode nod_to_be_removed = treeview.Nodes[0];
treeview.Nodes.Remove( nod_to_be_removed );
//change a node
HTreeNode new_node = new HTreeNode( "my new node!" );
treeview.Nodes[0] = new_node;
HTreeNode node = treeview.SelectedNode;
- Get the selected nodes with multiple selection
treeview.Selection.Mode = Gtk.SelectionMode.Multiple;
...
foreach( HTreeNode node in treeview.SelectedNodes )
{
Console.WriteLine("selected node: "+ node.Text );
}- Other nodes methods/properties :
| Method | Description |
| HTreeNode.selectAllChilds() | select all nodes childs |
| deselectAllChilds() | deselect all nodes childs |
| IsExpanded | returns true if the nod is expanded |
| Icon | node's icon |
| Text | node's text |
| Checked | returns true if the nod is checked |
| OpenedIcon | node's icon when it's expanded |
| ParentNode | node's father or null if it's root node |