TreeView
Кстати насчет темы http://forum.codenet.ru/showthread.php?s=&threadid=28844
(statusTree.SelectedNode=statusTree.Nodes["Вася"])
не работает. Пишет вот такую ошибку
Argument '1': cannot convert from 'string' to 'int'
Привет. Кото подскажет, как просмотреть ВСЕ ветви TreeView, или динамически его заполнить, или спозиционироваться на заданном узле, или перейти на уровень ниже или выше.
Кстати насчет темы http://forum.codenet.ru/showthread.php?s=&threadid=28844
(statusTree.SelectedNode=statusTree.Nodes["Вася"])
не работает. Пишет вот такую ошибку
Argument '1': cannot convert from 'string' to 'int'
Какая версия Framework?? Если 1.x, то вместо "Вася" поставь номер соответствующего узла
Какая версия Framework?? Если 1.x, то вместо "Вася" поставь номер соответствующего узла
Да, но я знаю только ИМЯ. И кстати как перебрать ВСЕ узлы?
Да, но я знаю только ИМЯ. И кстати как перебрать ВСЕ узлы?
Привожу код, при помощи которого мжно перебрать все узлы. Это код реализует метод рекурсивного спуска с проходом вглубь.
void Visit(TreeNodeCollection nodes)
{
foreach (TreeNode SubNode in nodes)
{
//делаешь с узлом то, что тебе надо
Visit(SubNode.Nodes);
}
потом при помощи кода Visit(treeView1.Nodes), где treeView1 экземпляр класса TreeView, перечисляются абсолютно все, даже вложенные узлы в дереве. Также с помощью этого метода ты можешь задать активный узел или реализовать поиск узла по имени примерно так:
TreeNode FindNode(string NodeName, TreeNodeCollection SearchTarget)
{
foreach(TreeNode node in SearchTarget)
{
if(node.Text==NodeName) return node;
FindNode(node.Nodes);
}
}
Привожу код, при помощи которого мжно перебрать все узлы. Это код реализует метод рекурсивного спуска с проходом вглубь.
void Visit(TreeNodeCollection nodes)
{
foreach (TreeNode SubNode in nodes)
{
//делаешь с узлом то, что тебе надо
Visit(SubNode.Nodes);
}
потом при помощи кода Visit(treeView1.Nodes), где treeView1 экземпляр класса TreeView, перечисляются абсолютно все, даже вложенные узлы в дереве. Также с помощью этого метода ты можешь задать активный узел или реализовать поиск узла по имени примерно так:
TreeNode FindNode(string NodeName, TreeNodeCollection SearchTarget)
{
foreach(TreeNode node in SearchTarget)
{
if(node.Text==NodeName) return node;
FindNode(node.Nodes);
}
}
Спасибо, еще одна идея в копилку. Я пытался реккурсивно занести ВСЁ дерево, но памяти не хватило, а это должно помочь, опять же, если хатит памяти на поиск на самых нижних уровнях дерева.
ПыСы. ОЗУ мало 32 метра, из них занять 5 не знаю на что и 5 -7 под систему (пишу для Pocket PC)
Спасибо, еще одна идея в копилку. Я пытался реккурсивно занести ВСЁ дерево, но памяти не хватило, а это должно помочь, опять же, если хатит памяти на поиск на самых нижних уровнях дерева.
ПыСы. ОЗУ мало 32 метра, из них занять 5 не знаю на что и 5 -7 под систему (пишу для Pocket PC)
Другой вариант перебора - использование хэш-таблицы (это уже крутые глюки) и мой способ - символьные деревья - работает по приниципу хэш, но с меньшими затратами на память.