Как я устанавливаю изображение для некоторых, но не всех узлов в TreeView?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

20
задан Irshad 5 May 2015 в 10:11
поделиться

2 ответа

Я попробовал это однажды, и я не думаю, что это возможно.

, При попытке установить и ImageKey и ImageIndex к "не установленные" значения управление просто значения по умолчанию ImageIndex к 0. Следующий код:

treeView.ImageKey = "Value";
Debug.WriteLine(treeView.ImageIndex);
treeView.ImageKey = null;
Debug.WriteLine(treeView.ImageIndex);
treeView.ImageIndex = -1;
Debug.WriteLine(treeView.ImageIndex);

Производит вывод:

-1
0
0

Это отчасти говорит Вам, что разработчики элементов управления хотели удостовериться, что всегда было изображение по умолчанию. Это просто оставляет Вас с опциями взлома, я боюсь.

8
ответ дан 29 November 2019 в 23:53
поделиться

Вам необходимо установить ImageIndex и SelectedImageIndex на число, превышающее количество значений в вашем ImageList . Например, если вы создадите этот узел и добавите его в свой TreeView :

TreeNode node1 = new TreeNode(string.Empty, 12, 12); // imageList1.Count = 5

, у вас будет невидимый TreeNode , вставленный в ваш TreeView . Я изменил цвет фона своего TreeView , и он все еще был невидим.

(Я искал это в течение некоторого времени и в конце концов нашел ответ здесь: http: //www.tech- archive.net/Archive/DotNet/microsoft.public.dotnet.framework.windowsforms/2006-09/msg00322.html ]

12
ответ дан 29 November 2019 в 23:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: