Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Я попробовал это однажды, и я не думаю, что это возможно.
, При попытке установить и 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
Это отчасти говорит Вам, что разработчики элементов управления хотели удостовериться, что всегда было изображение по умолчанию. Это просто оставляет Вас с опциями взлома, я боюсь.
Вам необходимо установить 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 ]