The source of the TreeView
Last Update:2017-02-28
Source: Internet
Author: User
treeview| source code using System;
Using System.Windows.Forms;
Using System.Drawing;
Using System.ComponentModel;
Using System.IO;
Class Folderdialog:form
{
TreeView FolderTree;
ImageList foldertreeicons;
TreeNode RootNode;
String[] iconfilenames={"Mycomp.ico", "Drive.ico", "Openfold.ico", "Clsdfold.ico"};
Public Folderdialog ()
{
Manipulate ImageList
Foldertreeicons=new ImageList ();
for (int i=0;i<iconfilenames.length;i++)
{
FOLDERTREEICONS.IMAGES.ADD (Image.FromFile (@ "images\" + iconfilenames[i));
}
Setting Properties for TreeView
Foldertree=new TreeView ();
Foldertree.afterselect+=new TreeViewEventHandler (Node_select);
Foldertree.imagelist=foldertreeicons;
foldertree.anchor=anchorstyles.top| Anchorstyles.bottom| Anchorstyles.left| Anchorstyles.right;
Root Node
Rootnode=new TreeNode ();
Rootnode.text= "My Computer";
Rootnode.tag= "My Computer";
rootnode.imageindex=0;
FOLDERTREE.NODES.ADD (RootNode);
Foldertree.selectednode=rootnode;
foldertree.selectednode.imageindex=0;
This. text= "Browse for Folder";
This. Size=new Size (300,300);
Foldertree.size=new Size (290,275);
This. Controls.Add (FolderTree);
}
private void Enumdrives (TreeNode parentnode)
{
if (parentnode.nodes.count==0)
{
foreach (String drive in Directory.getlogicaldrives ())
{
Foldertree.selectednode=parentnode;
TreeNode tempnode=new TreeNode ();
Tempnode.text=drive. Substring (0,drive. LENGTH-1);
tempnode.tag=drive;
Tempnode.imageindex=1;
Tempnode.selectedimageindex=1;
FOLDERTREE.SELECTEDNODE.NODES.ADD (Tempnode);
FOLDERTREE.SELECTEDNODE.NODES[FOLDERTREE.SELECTEDNODE.NODES.COUNT-1]. EnsureVisible ();
}
}
}
private void EnumDirectories (TreeNode parentnode)
{
Foldertree.selectednode=parentnode;
String directorypath=parentnode.tag.tostring ();
if (parentnode.nodes.count==0)
{
if (directorypath.substring (directorypath.length-1)!=@ "\")
directorypath+=@ "\";
Try
{
foreach (String directory in Directory.getdirectories (DirectoryPath))
{
TreeNode tempnode=new TreeNode ();
Tempnode.text=directory. Substring (directory. LastIndexOf (@ "\") +1);
Tempnode.tag=directory;
tempnode.imageindex=3;
tempnode.selectedimageindex=2;
FOLDERTREE.SELECTEDNODE.NODES.ADD (Tempnode);
FOLDERTREE.SELECTEDNODE.NODES[FOLDERTREE.SELECTEDNODE.NODES.COUNT-1]. EnsureVisible ();
}
}
catch (Exception)
{
}
}
}
private void Node_select (Object Sender,treevieweventargs e)
{
if (e.node.tag.tostring ()!= "My Computer")
EnumDirectories (E.node);
Else
Enumdrives (E.node);
}
public static void Main ()
{
Application.Run (New Folderdialog ());
}
(Go from: http://www.c-sharpcorner.com/winforms/UsingTreeViewPSD.asp)