Hassan Khatib
Hassan Khatib

Reputation: 1

treeview code with fixed directory

i need help with this piece of code to get files from directory and populate them in treeview.

foreach (DirectoryInfo directory in directories)
{
    TreeNode node = TreeView.Nodes[0].Nodes.Add(directory.Name);
    node.ImageIndex = 1;


    foreach (FileInfo file in directory.GetFiles())
    {
        if (file.Exists)
        {
            TreeNode nodes = TreeView.Nodes[0].Nodes(node.Index).Nodes.Add(file.Name);
            nodes.ImageIndex = 2;
        }
    }
}

i get this error: An object reference is required for the non-static field, method, or property 'System.Windows.Forms.TreeView.Nodes.get'

i appreciate any kind of help thanks

Upvotes: 0

Views: 376

Answers (2)

M P
M P

Reputation: 2337

I think what you want it this.

var directories = Directory.GetDirectories("c:\\users");
foreach (string directoryName in directories)
{
    var directory = new DirectoryInfo(directoryName);
    var node = new TreeNode(directory.Name);
    node.ImageIndex = 1;

    foreach (FileInfo file in directory.GetFiles())
    {
        if (file.Exists)
        {
            var nodes = node.Nodes.Add(file.Name);
            nodes.ImageIndex = 2;
        }
    }
    treeView1.Nodes.Add(node);
}

Upvotes: 0

keyboardP
keyboardP

Reputation: 69372

TreeView is not a static class which is why you're getting that error message. You should change where you've used TreeView to the actual name of your instance.

For example:

TreeNode node = TreeView.Nodes[0].Nodes.Add(directory.Name);

should be

//myTreeView is the name of my TreeView object
TreeNode node = myTreeView.Nodes[0].Nodes.Add(directory.Name);

Upvotes: 3

Related Questions