Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 12:34   #1
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию поиск по treeview

как осуществить поиск узлов по дереву
дерево имеет неограниченное число вложенностей

у меня получилось только поиск по первому ноду
Life if about choices
Make the right choice

Последний раз редактировалось TaTT DoGG; 28.05.2009 в 12:53.
TaTT DoGG вне форума Ответить с цитированием
Старый 28.05.2009, 12:53   #2
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
По умолчанию

Вы слышали что-то о рекурсии?? Вот вам нужно использовать рекурсию.
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 28.05.2009, 13:00   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например так:
Код:
 var i:integer;

begin
 for i:=0 to TreeView1.Items.Count-1 do begin
  if TreeView1.Items[i].Text='é' then begin
   TreeView1.Items[i].Expand(true);
   TreeView1.Items[i].Selected:=true;
   break;
  end;
 end;
end;
Цитата:
Вот вам нужно использовать рекурсию.
Не обязательно...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2009, 13:26   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Вот пример рекурсивного поиска:
Код:
private void FindNodeInHierarchy(TreeNodeCollection nodes, string strSearchValue)
        {            
            for (int iCount = 0; iCount < nodes.Count; iCount++)
            {
                if (nodes[iCount].Text.ToUpper().Contains(strSearchValue.ToUpper()))
                {                                             
                    trvSourceCode.SelectedNode = nodes[iCount];
                    trvSourceCode.Select();
                    m_bNodeFound = true;
                    return;
                }
                else
                {
                    m_bNodeFound = false;
                }
                //expand the nodes
                nodes[iCount].Expand();
                //Recursively search the text in the child nodes
                FindNodeInHierarchy(nodes[iCount].Nodes, strSearchValue);
                if (m_bNodeFound)
                {
                    return;
                }
                //collapses the nodes
                nodes[iCount].Collapse();
                //return;
            }            
        }
Слито с http://www.dotnetspider.com/resource...-TreeView.aspx
Hollander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TreeView IICuX123 Общие вопросы .NET 9 19.11.2011 01:47
treeview cheef Компоненты Delphi 3 15.04.2009 15:18
Treeview forzi Помощь студентам 4 04.05.2008 23:50
Поиск узлов в TreeView Ko$tello Компоненты Delphi 1 14.11.2006 17:18