Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Ципихович Эндрю
1357 / 315 / 16
Регистрация: 10.04.2009
Сообщений: 4,839
#1

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

16.06.2012, 22:17. Просмотров 1396. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2012, 22:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считать с TreeView1 всё что в нём находится (VB):

Можно ли считать данные с БД, которая находится на другом компе? - Visual Basic
Mozhno li chitat` dannye iz bazy dannyh, nahodyashejsya na drogom kompe(na brinksterre naprimer)? Spasibo

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

TreeView1.Nodes.Clear на слабых машинах - Visual Basic
Проблема: довольно заполненый TreeView по команде TreeView1.Nodes.Clear сначала, как я понял, сворачивает все открытые ветки, а потом их...

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

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

Проблема с циклом. Отдельно всё работает, а запускаешь всё вместе вылезает ошибка. - Visual Basic
Всем привет! Отдельно всё работает, а запускаешь всё вместе вылезает ошибка. Private Sub Command1_Click() ...

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

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

начинаешь, естественно, с корня.
0
Ципихович Эндрю
1357 / 315 / 16
Регистрация: 10.04.2009
Сообщений: 4,839
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
16241 / 6940 / 834
Регистрация: 25.12.2011
Сообщений: 10,722
Записей в блоге: 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
Ципихович Эндрю
1357 / 315 / 16
Регистрация: 10.04.2009
Сообщений: 4,839
18.06.2012, 02:49  [ТС] #5
Цитата Сообщение от Diskretor Посмотреть сообщение
не находит тип Node (user-defined type not defined).
сорри смешалось всё, видимо потому что
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Visual Basic
отложусь до завтра

Добавлено через 5 часов 35 минут
вот дилема, ВБ6 и ВБА братья, поэтому путаюсь в какой ветке нахожусь, в ВБ6 есть ветка но закрыта
в данное время стопорнулся - именно в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
0
Catstail
Модератор
23039 / 11406 / 1859
Регистрация: 12.02.2012
Сообщений: 18,666
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
Ципихович Эндрю
1357 / 315 / 16
Регистрация: 10.04.2009
Сообщений: 4,839
18.06.2012, 09:12  [ТС] #7
пока актуальней всего:
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вот дилема, ВБ6 и ВБА братья, поэтому путаюсь в какой ветке нахожусь, в ВБ6 есть ветка но закрыта
в данное время стопорнулся - именно в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
0
mc-black
2744 / 677 / 97
Регистрация: 04.02.2011
Сообщений: 1,393
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
10272 / 3787 / 969
Регистрация: 27.07.2011
Сообщений: 9,176
Завершенные тесты: 1
18.06.2012, 10:10 #9
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
в ВБ6 если нет контрола TreeView, его не добавить, нет его в списках, нужно видимо файл? какой? есть у кого?
Он входит в состав компонента Microsoft Windows Common Controls 6.0(SP4).
0
Миниатюры
Считать с TreeView1 всё что в нём находится  
Catstail
Модератор
23039 / 11406 / 1859
Регистрация: 12.02.2012
Сообщений: 18,666
18.06.2012, 10:25 #10
Естественно, точку я не забыл поставить. Но, тем не менее (см. картинку)
0
Миниатюры
Считать с TreeView1 всё что в нём находится  
SoftIce
comment ca va
10272 / 3787 / 969
Регистрация: 27.07.2011
Сообщений: 9,176
Завершенные тесты: 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
Модератор
23039 / 11406 / 1859
Регистрация: 12.02.2012
Сообщений: 18,666
18.06.2012, 11:58 #12
Согласен. Но это - явный цикл. Было бы "прикольно", если бы существовала возможность вывода одним оператором.

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

Добавлено через 9 минут
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
нет у меня такого, может докачать можно?, а с сети брал проект там был TreeView, там с ним и познакомился
уладил, нужно отдохнуть от перенапряжения
0
Dragokas
Эксперт WindowsАвтор FAQ
16241 / 6940 / 834
Регистрация: 25.12.2011
Сообщений: 10,722
Записей в блоге: 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
18.06.2012, 18:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2012, 18:00
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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