【问题标题】:Embed an image in a TreeNode在 TreeNode 中嵌入图像
【发布时间】:2012-10-04 13:38:37
【问题描述】:

如何将全尺寸图像嵌入到 TreeNode?​​p>

目标是显示详细的日志文件,其中每个节点代表窗口标题,其子节点包含键盘日志。

【问题讨论】:

    标签: c# treeview treenode


    【解决方案1】:

    使用以下模式将图像添加到TreeView 图像列表。

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

    然后将图像设置为节点使用

    myNode.ImageKey = "imageKey";
    

    【讨论】:

    • 它将图标添加到节点。目标是在节点中显示屏幕截图和文本
    • 如果你使用上面的,结合myNode.Text,它会显示图像和文本。
    • 当然可以。是否可以更改图标大小?现在是 16x16,有没有办法显示未调整大小的图像?
    • treeList.ImageSize = New Size(32, 32)。如果图像出现毁容,请尝试使用treeList.ColorDepth
    【解决方案2】:

    试试这个功能:

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

    【讨论】:

      猜你喜欢
      • 2014-07-02
      • 1970-01-01
      • 2018-07-06
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 2015-03-28
      • 1970-01-01
      相关资源
      最近更新 更多