【问题标题】:Setting images from icons in a TreeView从 TreeView 中的图标设置图像
【发布时间】:2012-12-08 22:37:50
【问题描述】:

我正在编写自己的基于 C# 的应用程序启动器,虽然我让它填充 TreeView 并在其中启动应用程序快捷方式,但我似乎不知道如何将图标作为图像添加到TreeView。我当前获取文件的代码是:

    private void homeMenu_Load(object sender, EventArgs e)
    {
        this.ShowInTaskbar = false;
        if (Directory.Exists((Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + "\\Roaming\\Launcher")))
        {

        }
        else
        {
            Directory.CreateDirectory(Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + "\\Roaming\\Launcher");
        }

        DirectoryInfo launcherFiles = new DirectoryInfo(Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + "\\Roaming\\Launcher");

        lstPrograms.Nodes.Add(CreatingDirectoryTreeNode(launcherFiles));

        lstPrograms.Sort();

    }

    private static TreeNode CreatingDirectoryTreeNode(DirectoryInfo directoryInfo)
    {
        var directoryNode = new TreeNode(directoryInfo.Name);

        foreach (var directory in directoryInfo.GetDirectories())
        {
            directoryNode.Nodes.Add(CreatingDirectoryTreeNode(directory));
        }

        foreach (var file in directoryInfo.GetFiles())
        {
            directoryNode.Nodes.Add(new TreeNode(file.Name));
        }

        return directoryNode;
    }

我遇到的主要问题是将 TreeList 的 ImageList 的图标添加到特定节点。我知道我需要补充:

lstPrograms.ImageList.Images.Add(Icon.ExtractAssociatedIcon());

要将图标实际添加到图像列表中,我如何获取该特定图像的索引,然后将其添加到 TreeView 及其相关文件?

【问题讨论】:

    标签: c# winforms treeview


    【解决方案1】:

    首先,将图片添加为资源并定义您的图片列表:

    static ImageList _imageList;
    public static ImageList ImageList
    {
        get
        {
            if (_imageList == null)
            {
                _imageList = new ImageList();
                _imageList.Images.Add("Applications", Properties.Resources.Image_Applications);
                _imageList.Images.Add("Application", Properties.Resources.Image_Application);
            }
            return _imageList;
        }
    }
    

    然后,设置TreeViewImageList属性:

    treeView1.ImageList = Form1.ImageList;
    

    然后,当您创建节点时,对于特定节点,使用:

    applicationNode.ImageKey = "Application";
    applicationNode.SelectedImageKey = "Application";
    

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多