Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Ципихович Эндрю
1409 / 319 / 28
Регистрация: 10.04.2009
Сообщений: 4,955
#1

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

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

здравствуйте как будет код с помощью 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

http://www.cyberforum.ru/visual-basic/thread474589.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2012, 22:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Считать с TreeView1 всё что в нём находится (VB):

Как считать свойство Point у PictureBox, если он невидим или находится за пределами формы?
Как считать свойство Point у PictureBox, если он невидим или находится за...

TreeView1.Nodes.Clear на слабых машинах
Проблема: довольно заполненый TreeView по команде TreeView1.Nodes.Clear...

Как узнать название удалённого сервера и что на нём стоит(Perl/PHP/MySQL) через WinSock?
Subject

TreeView/ Dim x as node x=treeview1.Nodes(...) do until x=Nothing x=x.Next loop
Проблема такая: есть деревяшка - я хожу по ней через Next, Previous, Child,...

Проблема с циклом. Отдельно всё работает, а запускаешь всё вместе вылезает ошибка.
Всем привет! Отдельно всё работает, а запускаешь всё вместе вылезает ошибка....

16
Catstail
Модератор
23530 / 11638 / 2034
Регистрация: 12.02.2012
Сообщений: 18,978
17.06.2012, 10:17 #2
Мне кажется, что программа полного чтения дерева должна его обойти. Легче всего это сделать так:

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

начинаешь, естественно, с корня.
0
Ципихович Эндрю
1409 / 319 / 28
Регистрация: 10.04.2009
Сообщений: 4,955
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
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,803
Записей в блоге: 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
Ципихович Эндрю
1409 / 319 / 28
Регистрация: 10.04.2009
Сообщений: 4,955
18.06.2012, 02:49  [ТС] #5
Цитата Сообщение от Diskretor Посмотреть сообщение
не находит тип Node (user-defined type not defined).
сорри смешалось всё, видимо потому что
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Visual Basic
отложусь до завтра

Добавлено через 5 часов 35 минут
вот дилема, ВБ6 и ВБА братья, поэтому путаюсь в какой ветке нахожусь, в ВБ6 есть ветка но закрыта
в данное время стопорнулся - именно в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
0
Catstail
Модератор
23530 / 11638 / 2034
Регистрация: 12.02.2012
Сообщений: 18,978
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
Ципихович Эндрю
1409 / 319 / 28
Регистрация: 10.04.2009
Сообщений: 4,955
18.06.2012, 09:12  [ТС] #7
пока актуальней всего:
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вот дилема, ВБ6 и ВБА братья, поэтому путаюсь в какой ветке нахожусь, в ВБ6 есть ветка но закрыта
в данное время стопорнулся - именно в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
0
mc-black
2759 / 695 / 101
Регистрация: 04.02.2011
Сообщений: 1,421
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
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
18.06.2012, 10:10 #9
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
Он входит в состав компонента Microsoft Windows Common Controls 6.0(SP4).
0
Миниатюры
Считать с TreeView1 всё что в нём находится  
Catstail
Модератор
23530 / 11638 / 2034
Регистрация: 12.02.2012
Сообщений: 18,978
18.06.2012, 10:25 #10
Естественно, точку я не забыл поставить. Но, тем не менее (см. картинку)
0
Миниатюры
Считать с TreeView1 всё что в нём находится  
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
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
Catstail
Модератор
23530 / 11638 / 2034
Регистрация: 12.02.2012
Сообщений: 18,978
18.06.2012, 11:58 #12
Согласен. Но это - явный цикл. Было бы "прикольно", если бы существовала возможность вывода одним оператором.

Но, еще раз повторю - это "неправильная" выгрузка, т.к. в выгруженном файле нет информации о подчиненности узлов.
0
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
18.06.2012, 12:04 #13
Цитата Сообщение от Catstail Посмотреть сообщение
информации о подчиненности узлов
Можно "поиграться" с TreeView1.Nodes.Item(i).Children и TreeView1.Nodes.Item(i).Parent
0
Ципихович Эндрю
1409 / 319 / 28
Регистрация: 10.04.2009
Сообщений: 4,955
18.06.2012, 13:38  [ТС] #14
Цитата Сообщение от SoftIce Посмотреть сообщение
Он входит в состав компонента Microsoft Windows Common Controls 6.0(SP4).
нет у меня такого, может докачать можно?, а с сети брал проект там был TreeView, там с ним и познакомился

Добавлено через 9 минут
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
нет у меня такого, может докачать можно?, а с сети брал проект там был TreeView, там с ним и познакомился
уладил, нужно отдохнуть от перенапряжения
0
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,803
Записей в блоге: 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
Catstail
Модератор
23530 / 11638 / 2034
Регистрация: 12.02.2012
Сообщений: 18,978
18.06.2012, 18:17 #16
Цитата Сообщение от Diskretor Посмотреть сообщение
рекурсивный обход дерева
- вот о чём я и говорил...
1
Ципихович Эндрю
1409 / 319 / 28
Регистрация: 10.04.2009
Сообщений: 4,955
20.06.2012, 13:48  [ТС] #17
ещё вопрос возник по TreeView - как узнать выделенные и отмеченные галочками?? сколько их и какие?
0
20.06.2012, 13:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2012, 13:48
Привет! Вот еще темы с решениями:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru