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"
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
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
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);
Here is MSDN Example:-
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.imagelist.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.imagelist.aspx
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(Ima ge.FromFil e("Default .gif"));
myImageList.Images.Add(Ima ge.FromFil e("Selecte dDefault.g if"));
myImageList.Images.Add(Ima ge.FromFil e("Root.gi f"));
myImageList.Images.Add(Ima ge.FromFil e("Unselec tedCustome r.gif"));
myImageList.Images.Add(Ima ge.FromFil e("Selecte dCustomer. gif"));
myImageList.Images.Add(Ima ge.FromFil e("Unselec tedOrder.g if"));
myImageList.Images.Add(Ima ge.FromFil e("Selecte dOrder.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.SelectedImageIn dex = 1;
/* Set the index of image from the
ImageList for selected and unselected tree nodes.*/
this.rootImageIndex = 2;
this.selectedCustomerImage Index = 3;
this.unselectedCustomerIma geIndex = 4;
this.selectedOrderImageInd ex = 5;
this.unselectedOrderImageI ndex = 6;
// Create the root tree node.
TreeNode rootNode = new TreeNode("CustomerList");
rootNode.ImageIndex = rootImageIndex;
rootNode.SelectedImageInde x = rootImageIndex;
// Add a main root tree node.
myTreeView.Nodes.Add(rootN ode);
// 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.Custom erOrders.C ount];
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.Custom erName,
unselectedCustomerImageInd ex, selectedCustomerImageIndex , myTreeNodeArray);
myTreeView.Nodes[0].Nodes. Add(custom erNode);
}
}
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(Ima
myImageList.Images.Add(Ima
myImageList.Images.Add(Ima
myImageList.Images.Add(Ima
myImageList.Images.Add(Ima
myImageList.Images.Add(Ima
myImageList.Images.Add(Ima
// Assign the ImageList to the TreeView.
myTreeView.ImageList = myImageList;
// Set the TreeView control's default image and selected image indexes.
myTreeView.ImageIndex = 0;
myTreeView.SelectedImageIn
/* Set the index of image from the
ImageList for selected and unselected tree nodes.*/
this.rootImageIndex = 2;
this.selectedCustomerImage
this.unselectedCustomerIma
this.selectedOrderImageInd
this.unselectedOrderImageI
// Create the root tree node.
TreeNode rootNode = new TreeNode("CustomerList");
rootNode.ImageIndex = rootImageIndex;
rootNode.SelectedImageInde
// Add a main root tree node.
myTreeView.Nodes.Add(rootN
// 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.Custom
foreach(Order myOrder in myCustomer.CustomerOrders)
{
// Add the Order tree node to the array.
myTreeNodeArray[countIndex
unselectedOrderImageIndex,
countIndex++;
}
// Add the Customer tree node.
TreeNode customerNode = new TreeNode(myCustomer.Custom
unselectedCustomerImageInd
myTreeView.Nodes[0].Nodes.
}
}
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.