Ler em inglês

Compartilhar via


TreeView.ImageList Propriedade

Definição

Obtém ou define o ImageList que contém os objetos Image usados pelos nós de árvore.

public System.Windows.Forms.ImageList ImageList { get; set; }

Valor da propriedade

ImageList

O ImageList que contém os objetos Image usados pelos nós de árvore. O valor padrão é null.

Exemplos

O exemplo de código a seguir cria e atribui um ImageList a um TreeView controle e preenche o TreeView controle com TreeNode objetos. Os nós de árvore são atribuídos imagens do ImageList que são exibidos quando em um estado selecionado ou não selecionado. Este exemplo exige que você tenha um Form que contenha um TreeViewe um ArrayList que contém Customer objetos que contêm Order objetos.


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);
    }
}

Comentários

Se o valor da ImageList propriedade for algo diferente null, todos os nós de árvore exibirão o primeiro Image armazenado no ImageList. Você pode especificar quais imagens da lista são exibidas para nós selecionados e não selecionados definindo as propriedades e SelectedImageIndex as ImageIndex propriedades. Objetos individuais TreeNode podem especificar qual imagem é exibida definindo suas propriedades e SelectedImageIndex propriedadesImageIndex. Essas configurações individuais substituirão as configurações nas propriedades correspondentes TreeView .

Observação

No .NET Framework versão 1.1, há um problema que impede que imagens apareçam em TreeView nós quando o aplicativo chama Application.EnableVisualStyles. Para contornar esse problema, chame Application.DoEvents seu Main método imediatamente depois de chamar EnableVisualStyles. Esse problema é corrigido no .NET Framework 2.0.

Aplica-se a