Что может вызвать падение TreeView, кроме вызова метода .Collapse () на TreeNode или метода .CollapseAll () TreeView?
В приложении, которое я разрабатываю, TreeView просто не будет работать должным образом. TreeView поддерживает только два уровня. При выборе дочернего узла родительского узла все остальные узлы немедленно сворачиваются. Однако в моем коде нет никаких вызовов методов .Collapse () или .CollapseAll ()!
Все свойства TreeView имеют значения по умолчанию, кроме свойства .LabelEdit, для которого установлено значение true. TreeView имеет некоторый код, связанный с событием AfterLabelEdit для простой процедуры проверки / MessageBox.
Я пробовал:
Перехват события BeforeCollapse для
TreeView и повышение
e.CancelAction флаг.
Расширение всех узлов вручную
в AfterSelect TreeView
событие. (Это прекрасно работает как
эксперимент, но я не собираюсь
запретить коллапс узла
в целом!)
Во многих точках кода я перебираю TreeView, узел за узлом, чтобы проверить свойства. Однако никаких добавлений или удалений узлов не происходит. Единственные свойства TreeNode, которые изменяются при выборе пользователем, - это .ImageIndex и .SelectedImageIndex.
Кроме двух приведенных выше решений, я не имею ни малейшего представления о том, что может быть причиной этой ошибки. Даже если никакие решения не могут быть реализованы, может ли кто-нибудь иметь представление о правильном способе захвата краха? (Я попытался установить точку останова в событии BeforeCollapse, но она не сработала, если пользователь явно не свернул узел с помощью мыши или клавиатуры.)
UPDATE:
Проблема связана с изменением свойства .SelectedImageIndex на любом TreeNode. Изменение этого свойства приводит к разрушению всех остальных узлов.
Я попытался окружить код модификации свойства .SelectedImageIndex вызовами .BeginUpdate () и .EndUpdate (), но безрезультатно.
Как этого избежать?