Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,715
1

Считать с TreeView1 всё что в нём находится

16.06.2012, 22:17. Показов 2127. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте как будет код с помощью For Each считать с TreeView1
2
в TreeView1 можно например при помощи зажатой клавиши Контрол выделять несколько сучков на дереве?

Добавлено через 1 час 20 минут
с дельфей такое
Delphi
1
TreeView1.SaveToFile ("C:\tree.txt");
в ВБ(А) можно сделать??

Добавлено через 57 минут
как эту инфу использовать
чтобы определить, какой узел был выбран щелчком мыши, путем проверки класса TreeViewEventArgs, в котором содержатся данные, связанные с этим событием.

Visual Basic
1
2
3
4
5
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
   ' Determine by checking the Node property of the TreeViewEventArgs.
   MessageBox.Show(e.Node.Text)
End Sub
как это затолкать например в
Visual Basic
1
2
3
4
Sub Command1_Click()
 
 
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2012, 22:17
Ответы с готовыми решениями:

При выводе данных в файл стереть всё, что в нём было
Всем добрый день. Подскажите, пожалуйста, как при выводе данных в файл, первым делом стереть всё,...

Спарсить всё, что находится в классе
Вот таким образом спарсил всё, что находится в Id="eow-title" $html = file_get_contents('тут...

Задача: найти в файле всё что находится в {t}{/t}
Нужно найти в файле всё что находится в {t}{/t} и записать в лог. А также при записи текста,...

В переменную занести всё, что находится в TextBox
Добрый день Подскажите пожалуйста Мне нужно в переменную (например) sdf занести всё что...

16
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
17.06.2012, 10:17 2
Мне кажется, что программа полного чтения дерева должна его обойти. Легче всего это сделать так:

1) заходишь в узел
2) обходишь всех его потомков (рекурсивно)

начинаешь, естественно, с корня.
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,715
17.06.2012, 10:34  [ТС] 3
проблема века решена
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim TreeView1Nodes As String
TreeView1Nodes = ""
   
Dim aNode As Node
   
For Each uc In TreeView1.Nodes
'изменение цвета узла
aNode.ForeColor = 255
TreeView1Nodes = TreeView1Nodes & aNode.Text
Next
  
MsgBox TreeView1Nodes

в MsgBox точно всё залетит, а то там у меня много всего видимо в MsgBox всё не помещается, как более точно опробовать пример?

Добавлено через 10 минут
как разрулить
'сохранить содержимое TreeView в файл
Visual Basic
1
 TreeView1.SaveToFile ("C:\tree.txt")
не сохраняет
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
17.06.2012, 16:12 4
У меня не находит тип Node (user-defined type not defined).
Вы где это пишете, либо еще какую библиотеку подключаете?
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
'сохранить содержимое TreeView в файл
Почему бы не стандартным способом:
Visual Basic
1
2
3
4
ff=freefile()
open "c:\file.log" for output as #ff
  print #ff, TreeView1Nodes
close #ff
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,715
18.06.2012, 02:49  [ТС] 5
Цитата Сообщение от Diskretor Посмотреть сообщение
не находит тип Node (user-defined type not defined).
сорри смешалось всё, видимо потому что
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Visual Basic
отложусь до завтра

Добавлено через 5 часов 35 минут
вот дилема, ВБ6 и ВБА братья, поэтому путаюсь в какой ветке нахожусь, в ВБ6 есть ветка но закрыта
в данное время стопорнулся - именно в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
18.06.2012, 08:50 6
Diskretor-у

1) Так, как Вы предложили

Visual Basic
1
2
3
4
ff=freefile()
open "c:\file.log" for output as #ff
  print #ff, TreeView1Nodes
close #ff
не проходит (синтаксическая ошибка в операторе print).
У меня VB6.0EE (компоненты версии 5.0 SP2)

Придется все-таки делать вот так:

Visual Basic
1
2
3
4
5
6
ff=freefile()
open "c:\file.log" for output as #ff
for each no in TreeView1Nodes
  print #ff, no 
Next
close #ff
НО! При этом получится плоский файл, в котором отсутствует информация о том,
какой узел родительский, какой дочерний. Такая выгрузка, на мой взгляд, малополезна...
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,715
18.06.2012, 09:12  [ТС] 7
пока актуальней всего:
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вот дилема, ВБ6 и ВБА братья, поэтому путаюсь в какой ветке нахожусь, в ВБ6 есть ветка но закрыта
в данное время стопорнулся - именно в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
0
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
18.06.2012, 09:57 8
Цитата Сообщение от Catstail Посмотреть сообщение
Diskretor-у

1) Так, как Вы предложили

Visual Basic
1
2
3
4
ff=freefile()
open "c:\file.log" for output as #ff
  print #ff, TreeView1Nodes
close #ff
не проходит (синтаксическая ошибка в операторе print).
В коде есть опечатка (пропущена точка в 4-й строке). Исправленный вариант должен работать:
Visual Basic
1
2
3
4
ff=freefile()
open "c:\file.log" for output as #ff
  print #ff, TreeView1.Nodes
close #ff
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
18.06.2012, 10:10 9
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
Он входит в состав компонента Microsoft Windows Common Controls 6.0(SP4).
Миниатюры
Считать с TreeView1 всё что в нём находится  
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
18.06.2012, 10:25 10
Естественно, точку я не забыл поставить. Но, тем не менее (см. картинку)
Миниатюры
Считать с TreeView1 всё что в нём находится  
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
18.06.2012, 11:26 11
Аргумент нужен
Visual Basic
1
2
3
4
5
6
ff = FreeFile()
Open "c:\file.log" For Output As #ff
  For i = 1 To TreeView1.Nodes.Count
       Print #ff, TreeView1.Nodes.Item(i)
  Next i
Close #ff
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
18.06.2012, 11:58 12
Согласен. Но это - явный цикл. Было бы "прикольно", если бы существовала возможность вывода одним оператором.

Но, еще раз повторю - это "неправильная" выгрузка, т.к. в выгруженном файле нет информации о подчиненности узлов.
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
18.06.2012, 12:04 13
Цитата Сообщение от Catstail Посмотреть сообщение
информации о подчиненности узлов
Можно "поиграться" с TreeView1.Nodes.Item(i).Children и TreeView1.Nodes.Item(i).Parent
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,715
18.06.2012, 13:38  [ТС] 14
Цитата Сообщение от SoftIce Посмотреть сообщение
Он входит в состав компонента Microsoft Windows Common Controls 6.0(SP4).
нет у меня такого, может докачать можно?, а с сети брал проект там был TreeView, там с ним и познакомился

Добавлено через 9 минут
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
нет у меня такого, может докачать можно?, а с сети брал проект там был TreeView, там с ним и познакомился
уладил, нужно отдохнуть от перенапряжения
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
18.06.2012, 18:00 15
Цитата Сообщение от mc-black Посмотреть сообщение
В коде есть опечатка (пропущена точка в 4-й строке).
А я вообще смутно представлял, что это такое.

Ципихович Эндрю, дайте файл, чтобы на эту структуру вживую потестировать.

Вот, если поможет, содрал с MSDN - рекурсивный обход дерева (правда, VB.net кажись):

' Call the procedure using the top nodes of the treeview.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub CallRecursive(ByVal aTreeView As TreeView)
   Dim n As TreeNode
   For Each n In aTreeView.Nodes
      PrintRecursive(n)
   Next
End Sub
 
Private Sub PrintRecursive(ByVal n As TreeNode)
   System.Diagnostics.Debug.WriteLine(n.Text)
   MessageBox.Show(n.Text)
   Dim aNode As TreeNode
   For Each aNode In n.Nodes
      PrintRecursive(aNode)
   Next
End Sub
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
18.06.2012, 18:17 16
Цитата Сообщение от Diskretor Посмотреть сообщение
рекурсивный обход дерева
- вот о чём я и говорил...
1
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,715
20.06.2012, 13:48  [ТС] 17
ещё вопрос возник по TreeView - как узнать выделенные и отмеченные галочками?? сколько их и какие?
0
20.06.2012, 13:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2012, 13:48
Помогаю со студенческими работами здесь

Как скачать всё, что находится в div ?
ИСПОЛЬЗУЕТСЯ: WebDriver, С# ИМЕЕТСЯ: Страница содержит <div class="controls"> <div...

Как осуществить запись в файл bin и как прочитать всё, что в нём есть
Добрый день.Подскажите как осуществить запись в файл bin и как прочитать всё,что в нём есть.Заранее...

вывевести на экран всё то, что находится после 4го пробела.
вывевести на экран всё то, что находится после 4го пробела.

Обработка строк. Всё, что находится между /*...*/ не должно выводиться
Надо ввести строку. Например, вот такую: "авытол ыва: тмлвам, рлвым /*толлми ьмлдв вам*/ мавмм...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru