Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > TreeView Node icons: opened & closed folder


Автор: balooo 6.6.2007, 15:27
добрый день!

пардон, за ламерский вопрос, но на форуме такого не нашел:

есть папки/подпапки mailboxa, закинутые в стандарный TreeView. Хотелось бы оформить его как стандартный виндовый проводник:
т.е. чтобы у открытых нод (пардон за уточнение - у которых слева знак минус smile ) была патип icon1.ico, а у закрытых icon2.ico

SelectedImageIndex/Key позволяет менять только для выделенной ноды:(

может подскажете идею? или может на каких событиях это отлавливать?

P.S.
желательно чтобы изменение иконки происходило при отрытии/закрытии ноды и по клаве и по клику мыши; и при селекте, и при клике слева по знаку +/-.

заранее спасибо за идеи.

Павел.

Автор: tol05 6.6.2007, 16:57
Да сколько угодно у TreeNode есть вариантов. smile
ImageIndex, ImageKey, SelectedImageIndex, SelectedImageKey, StateImageIndex, StateImageKey 

Берешь любой из обработчиков событий, берешь Nodes у TreeView, среди них ишешь нужную (по Name, Tag, Text, чему угодно).
А потом - меняешь у нее люьое из указанных выше свойств. Как я понимаю, ImageIndex, ImageKey...

Автор: balooo 7.6.2007, 10:07
меня, сопсно, интересовало на какие события вешать изменение иконки, чтот сразу не получилось найти AfterExpand & AfterCollapse smile :
Код

        private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
        {
            e.Node.ImageIndex = 1;
            e.Node.SelectedImageIndex = 1;
        }

        private void treeView1_AfterCollapse(object sender, TreeViewEventArgs e)
        {
            e.Node.ImageIndex = 0;
            e.Node.SelectedImageIndex = 0;
        }

но, пасиб, что не оставили без внимания smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)