Вставить изображение в TreeNode

Как встроить полноразмерное изображение в TreeNode?

Цель состоит в том, чтобы отобразить подробный файл журнала, где каждый узел представляет заголовок окна, а его подузлы содержат кейлог.


person nichiporets    schedule 04.10.2012    source источник


Ответы (2)


Используйте следующий шаблон для добавления изображений в список изображений TreeView.

ImageList treeList = new ImageList();
treeList.Images.Add("imageKey", myImage);

Затем, чтобы установить изображение на узел, используйте

myNode.ImageKey = "imageKey";
person swiftgp    schedule 04.10.2012
comment
Это добавит значок к узлу. Цель состоит в том, чтобы отображать скриншоты, а также текст в узле. - person nichiporets; 04.10.2012
comment
Если вы используете вышеуказанное в сочетании с myNode.Text, оно будет отображать как изображение, так и текст. - person swiftgp; 04.10.2012
comment
Конечно, это так. Можно ли изменить размер значка? Теперь это 16x16, есть ли способ отобразить изображение без размера? - person nichiporets; 04.10.2012
comment
treeList.ImageSize = New Size(32, 32). Если изображение кажется изуродованным, попробуйте поиграть с treeList.ColorDepth - person swiftgp; 04.10.2012

Попробуйте эту функцию:

 private void FillTreeView()
{
    // Load the images in an ImageList.
    ImageList myImageList = new ImageList();
    myImageList.Images.Add(Image.FromFile("1.gif"));
    myImageList.Images.Add(Image.FromFile("2.gif"));
    myImageList.Images.Add(Image.FromFile("3.gif"));
    myImageList.Images.Add(Image.FromFile("4.gif"));
    myImageList.Images.Add(Image.FromFile("5.gif"));
    myImageList.Images.Add(Image.FromFile("6.gif"));
    myImageList.Images.Add(Image.FromFile("7.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("TheList");
    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);
    }
}
person ALI VOJDANIANARDAKANI    schedule 04.10.2012