Matrimony Ответов: 0

Как настроить изображение на листе только в 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

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

0 Ответов