Настройка изображений из значков в TreeView
Я пишу свой собственный запуск приложений на основе 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 + "RoamingLauncher")))
{
}
else
{
Directory.CreateDirectory(Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + "RoamingLauncher");
}
DirectoryInfo launcherFiles = new DirectoryInfo(Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName + "RoamingLauncher");
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;
}
основная проблема, с которой я столкнулся, - это добавление значка в ImageList дерева к конкретному узлу. Я знаю, что мне нужно добавить:
lstPrograms.ImageList.Images.Add(Icon.ExtractAssociatedIcon());
чтобы добавить значок в список изображений, как мне это сделать индекс конкретного изображения, затем добавьте его в 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;
}
}
затем ImageList
свойства TreeView
:
treeView1.ImageList = Form1.ImageList;
затем, когда вы создаете узлы для определенного узла, используйте:
applicationNode.ImageKey = "Application";
applicationNode.SelectedImageKey = "Application";