Как настроить изображение на листе только в TreeView
я хочу установить изображение только на листовой узел, но, похоже, что не листовые узлы устанавливаются автоматически.
Что я уже пробовал:
tv.ImageList = images List<TreeNode> Nodes = tv.GetAllTreeNodes().ToList(); foreach (TreeNode tn in Nodes) { if (tn.GetNodeCount(false) != 0) { tn.ImageIndex = -1; } else { tn.ImageKey ="myimage"; } }
листовой узел установлен правильно, но есть изображение и на не листовом узле.
Richard MacCutchan
tn.ImageIndex ="myimage";
Это даже не будет компилироваться. объект TreeNode.ImageIndex-это целое число, а не строка.
Matrimony
опечатка должна быть ImageKey
Richard MacCutchan
Тогда я думаю, что вам нужно использовать свой отладчик, чтобы увидеть, что здесь происходит. Вы также можете спросить себя, почему вы создаете этот список,когда TreeView уже содержит коллекцию всех узлов.
Matrimony
это не настоящий код в проекте. я просто хочу показать, когда изображение не листовых узлов установлено tn. ImageIndex = -1;, значок по умолчанию все еще там и как его удалить.
Richard MacCutchan
Затем сделайте то, что я предлагаю, и используйте свой отладчик, чтобы узнать, что происходит в этом коде. Мы не можем догадаться, какие значения содержат эти переменные.
Matrimony
я отладил его, tn.ImageIndex = -1 и tn.Imagekey = null. на данный момент он использует значок по умолчанию, я просто хочу знать, как удалить значок по умолчанию.
спасибо
Richard MacCutchan
Попробуйте удалить ImageList из TreeView.
Matrimony
листовой узел нуждается в изображениях
Richard MacCutchan
Что ж, я могу только предложить вам провести несколько экспериментов. Вы также можете посмотреть документацию, чтобы узнать, какие еще варианты возможны.