TreeView не отображает изображения из ImageList - PullRequest
4 голосов
/ 02 апреля 2012

У меня есть TreeView, который отображает CheckBox es:

enter image description here

Я хочу проверить, содержит ли данный каталог базу данных ".mdf" и делает ли онапроверьте, подключен ли он к выбранному экземпляру сервера.Если база данных прикреплена, я отображаю изображение на этом узле и другое изображение, если оно не прикреплено.Примечание: изображения имеют формат .png, размер 32x32 ...

Я заполняю ImageList из Properties.Resources

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

Затем я перебираю дерево и добавляю соответствующее изображение

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

Приведенный выше код проходит цикл без жалоб, находит ".mdf" и, кажется, добавляет соответствующие ImageIndexes, но они не отображаются в TreeView.Что я здесь не так делаю и могу ли я добавить ImageList во время разработки (что я тоже не могу сделать)?

Я прочитал несколько постов и, конечно же, документацию MSDN но я все еще не могу заставить его работать.Любая помощь, как всегда, высоко ценится.

Ответы [ 2 ]

3 голосов
/ 02 апреля 2012

Убедитесь, что для элемента управления TreeView для свойства ImageList установлено правильное значение ImageList:

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

treeView1.ImageList = mainImageList;
2 голосов
/ 09 ноября 2012

TreeNode.StateImageIndex= 0; установит изображения из списка изображений. Убедитесь, что список изображений привязан к элементу управления Treeview, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...