TreeView и получения определенного узла дерева. - C#

Узнай цену своей работы

Формулировка задачи:

Имеется TreeView следующей структуры: Название1 ---Название2(узел вложеный в Название1) Название3 ---Название4(узел вложеный в Название3) Название5 ---Название6(узел вложеный в Название5) Требуется вывести наименования только узлов 1,3,5 в string Я использую следующий код:
string str;
str = Convert.ToString(treeView1.SelectedNode.Text)
При выделении узлов 1,3,5 в строку str передается название корневых узлов. Т.е. выбрал 1 в строку попадает Название1 и т.д. Пробелема в том что при выборе 2,4 или 6 название узла так же передается, а мне этого ненадо. Как сделать так чтобы название можно было получить только с 1,3,5 узлов, а с 2,4,6 узлов нельзя? Спасибо за внимание и ответы
Нашел рещение, но оно корявое По крайней мере в моем случае оно подходит т.е. когда надо разрешить получать названия корневых узлов, а название вложеных узлов которые находятся в корневых нельзя.
if (treeView1.SelectedNode.FullPath == treeView1.SelectedNode.Text) // путь из корневого узла к выделеному в данный момент узлу сравнивается с названием, выделенного в данный момент, узла.
{
string str;
str = Convert.ToString(treeView1.SelectedNode.Text)
}

treeView1.SelectedNode.FullPath

- Данная строка получает путь из корневого узла к выделенному в данный момент узлу.

treeView1.SelectedNode.Text

- Данная строка получает название выделенного в данный момент узла. Т.к. нам надо получить название корневого узла когда он выделен, то данный способ вполне подходит, наш узел является и корневым и выделеным, соответственно мы получаем одинаковые названия: 1. Путь - Название1 2. Наименование выделенного узла - Название 1 3. Название1 = Название1 - условие будет выполнено и название текущего узла передастся в строку str. Если же будет выделен вложеный узел, то условие не будет выполнено т.к. Название1\Название2 != Название2 и соответственно название ненужного нам узла не будет передано в строку str Надеюсь кому надо тот поймет мою писанину )

Решение задачи: «TreeView и получения определенного узла дерева.»

textual
Листинг программы
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node.Parent == null)//Если родитель равенн Нулль, то значит родителей нет, а значит - узел корневой
            {
                string s = e.node.Text;
            }
            else
            {
                MessageBox.Show("Не корневой узел!");
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы