TreeNode::SelectedImageIndex Property

Gets or sets the image list index value of the image that is displayed when the tree node is in the selected state.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

property int SelectedImageIndex {
	int get ();
	void set (int value);

Property Value

Type: System::Int32
A zero-based index value that represents the image position in an ImageList.

The SelectedImageIndex value is the index value of an Image stored in the ImageList assigned to the TreeView::ImageList property.


The default value of the SelectedImageIndex property is the same as the SelectedImageIndex property of the TreeView control that the TreeNode is assigned to.

The following code example creates and assigns an ImageList to a TreeView control and fills the TreeView control with TreeNode objects. The tree nodes are assigned images from the ImageList that is displayed when the tree node is in a selected or unselected state. This example requires that you have a Form containing a TreeView, and an ArrayList containing Customer objects that each contain Order objects. It also requires that the Customer and Order objects are defined.

ref class Customer
   ArrayList^ CustomerOrders;
   String^ CustomerName;
   Customer( String^ myName )
      CustomerName = myName;
      CustomerOrders = gcnew ArrayList;


ref class Order
   String^ OrderID;
   Order( String^ myOrderID )
      this->OrderID = myOrderID;


   void FillTreeView()

      // Load the images in an ImageList.
      ImageList^ myImageList = gcnew 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 = gcnew 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.
      IEnumerator^ myEnum = customerArray->GetEnumerator();
      while ( myEnum->MoveNext() )
         Customer^ myCustomer = safe_cast<Customer^>(myEnum->Current);

         // Add a child tree node for each Order object. 
         int countIndex = 0;
         array<TreeNode^>^myTreeNodeArray = gcnew array<TreeNode^>(myCustomer->CustomerOrders->Count);
         IEnumerator^ myEnum = myCustomer->CustomerOrders->GetEnumerator();
         while ( myEnum->MoveNext() )
            Order^ myOrder = safe_cast<Order^>(myEnum->Current);

            // Add the Order tree node to the array.
            myTreeNodeArray[ countIndex ] = gcnew TreeNode( myOrder->OrderID,unselectedOrderImageIndex,selectedOrderImageIndex );
         TreeNode^ customerNode = gcnew TreeNode( myCustomer->CustomerName,unselectedCustomerImageIndex,selectedCustomerImageIndex,myTreeNodeArray );
         myTreeView->Nodes[ 0 ]->Nodes->Add( customerNode );

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft