TreeView и получения определенного узла дерева. - C#
Формулировка задачи:
Имеется TreeView следующей структуры:
Название1
---Название2(узел вложеный в Название1)
Название3
---Название4(узел вложеный в Название3)
Название5
---Название6(узел вложеный в Название5)
Требуется вывести наименования только узлов 1,3,5 в string
Я использую следующий код:
При выделении узлов 1,3,5 в строку str передается название корневых узлов. Т.е. выбрал 1 в строку попадает Название1 и т.д.
Пробелема в том что при выборе 2,4 или 6 название узла так же передается, а мне этого ненадо.
Как сделать так чтобы название можно было получить только с 1,3,5 узлов, а с 2,4,6 узлов нельзя?
Спасибо за внимание и ответы
string str; str = Convert.ToString(treeView1.SelectedNode.Text)
Нашел рещение, но оно корявое
По крайней мере в моем случае оно подходит т.е. когда надо разрешить получать названия корневых узлов, а название вложеных узлов которые находятся в корневых нельзя.
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("Не корневой узел!"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д