Link to home
Start Free TrialLog in
Avatar of Hojoformo
Hojoformo

asked on

How to add Images to tree nodes

I have a C# .net windows form application that creates a treeview from from a database.  There are 5 different NODES in the treeview and I want to assign a image to each one.  How can I do this?  

Treeview
  - --->   001   Image 1
  ----->  004   Image 2  
  ----->  005   Image 3
  ----->  001   Image 1  
 
I just want to know how to assign an image to a node.  something like treeGX1.SelectedNode.Image = "C:\dddddd.jpg"
 
Avatar of ricovox
ricovox
Flag of United States of America image

Hi Hojoformo,

You can do this by assigning an imagelist to the treeview and then assigning the desired image Key or index to each Node.

I will provide code in a followup post.
ASKER CERTIFIED SOLUTION
Avatar of ricovox
ricovox
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Again, just so you know, you can obtain an Image object to add to the ImageList by using the static Image.FromFile(string path) function.

Image image1 = Image.FromFile("C:\dddddd.jpg");
imgList.Images.Add("itemKey1", image1);

Open in new window

Avatar of SAMIR BHOGAYTA
Hello,
Try below code.

public ImageList ImageList { get; set; }


public class Customer
{
   public ArrayList CustomerOrders;
   public string CustomerName;
   public Customer(string myName)
   {
      CustomerName = myName;
      CustomerOrders = new ArrayList();
   }
}
public class Order
{
   public string OrderID;
   public Order(string myOrderID )
   {
      this.OrderID = myOrderID;
   }
}

private void FillTreeView()
{
      // Load the images in an ImageList.
      ImageList myImageList = new ImageList();
      myImageList.Images.Add(Image.FromFile("Default.gif"));
      myImageList.Images.Add(Image.FromFile("SelectedDefault.gif"));
      myImageList.Images.Add(Image.FromFile("Root.gif"));
      myImageList.Images.Add(Image.FromFile("UnselectedCustomer.gif"));
      myImageList.Images.Add(Image.FromFile("SelectedCustomer.gif"));
      myImageList.Images.Add(Image.FromFile("UnselectedOrder.gif"));
      myImageList.Images.Add(Image.FromFile("SelectedOrder.gif"));
      
      // Assign the ImageList to the TreeView.
      myTreeView.ImageList = myImageList;
      
      // Set the TreeView control's default image and selected image indexes.
      myTreeView.ImageIndex = 0;
      myTreeView.SelectedImageIndex = 1;

      /* Set the index of image from the
      ImageList for selected and unselected tree nodes.*/
      this.rootImageIndex = 2;
      this.selectedCustomerImageIndex = 3;
      this.unselectedCustomerImageIndex = 4;
      this.selectedOrderImageIndex = 5;
      this.unselectedOrderImageIndex = 6;
      
      // Create the root tree node.
      TreeNode rootNode = new TreeNode("CustomerList");
      rootNode.ImageIndex = rootImageIndex;
      rootNode.SelectedImageIndex = rootImageIndex;

      // Add a main root tree node.
      myTreeView.Nodes.Add(rootNode);

      // Add a root tree node for each Customer object in the ArrayList.
      foreach(Customer myCustomer in customerArray)
      {
            // Add a child tree node for each Order object.
            int countIndex=0;
            TreeNode[] myTreeNodeArray = new TreeNode[myCustomer.CustomerOrders.Count];
            foreach(Order myOrder in myCustomer.CustomerOrders)
            {
                  // Add the Order tree node to the array.
                  myTreeNodeArray[countIndex] = new TreeNode(myOrder.OrderID,
                    unselectedOrderImageIndex, selectedOrderImageIndex);
                  countIndex++;
            }
            // Add the Customer tree node.
            TreeNode customerNode = new TreeNode(myCustomer.CustomerName,
                  unselectedCustomerImageIndex, selectedCustomerImageIndex, myTreeNodeArray);
            myTreeView.Nodes[0].Nodes.Add(customerNode);
      }
}