TreeView 不显示 ImageList 中的图像

Moo*_*ght 5 c# treeview winforms

我有一个TreeView显示CheckBoxes:

在此处输入图片说明

我想检查给定目录是否包含“.mdf”数据库,如果包含,请检查它是否附加在所选服务器实例上。如果附加了数据库,我会针对该节点显示一张图像,如果未附加,则显示不同的图像。注:图片为 .png 格式,大小为 32x32...

我填充一个ImageList来自Properties.Resources

mainImageList = new ImageList();
mainImageList.Images.Add(Properties.Resources.Database);
mainImageList.Images.Add(Properties.Resources.DatabaseGrey);
Run Code Online (Sandbox Code Playgroud)

然后我遍历树并添加相关图像

public static void RecursiveAddImage(TreeNode treeNode, List<string> attachedList)
{
    if (String.Compare(Path.GetExtension(treeNode.Text), ".mdf", true) == 0)
    {
        string databaseName = treeNode.Text.Replace(".mdf", String.Empty);
        if (attachedList.Contains(databaseName))
        {
            treeNode.ImageIndex = 0;
            treeNode.SelectedImageIndex = 0;
        }
        else
        {
            treeNode.ImageIndex = 1;
            treeNode.SelectedImageIndex = 1;
        }
    }
    foreach (TreeNode node in treeNode.Nodes)
        RecursiveAddImage(node, attachedList);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码毫无怨言地通过循环,找到“.mdf”并似乎添加了相关ImageIndexes但这些没有显示在.mdf 文件中TreeView。我在这里做错了什么,我可以ImageList在设计时添加(我似乎也做不到)?

我已经阅读了几篇文章,当然还有MSDN 文档,但我似乎仍然无法让它工作。一如既往的任何帮助,非常感谢。

Lar*_*ech 4

确保 TreeView 控件的ImageList属性设置为正确的ImageList引用:

mainImageList = new ImageList();
mainImageList.Images.Add(Properties.Resources.Database);
mainImageList.Images.Add(Properties.Resources.DatabaseGrey);

treeView1.ImageList = mainImageList;
Run Code Online (Sandbox Code Playgroud)