Страница: 1 |
Страница: 1 |
Вопрос: Количество нод в TrreView
Добавлено: 07.09.04 19:03
Автор вопроса: danser | ICQ: 299287824
Такой например код:
...
dim T as new TrreView()
T.Nodes.Add("123")
Как мне узнать количество елементов(нод), допустим, в нулевой ветке (в примере их 0 так как я только создал нулевую ветку).
Надо свойство типа T.Nodes.Count :(((
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 07.09.04 19:25
Рекурсивный перебор - рулит
Номер ответа: 2
Автор ответа:
danser
ICQ: 299287824
Вопросов: 76
Ответов: 209
Профиль | | #2
Добавлено: 07.09.04 20:02
Да при заполнении я использую рекурсию:
f(Nodes1)
...
Nodes1.Add("abc"
f(Nodes1.Item(???).Nodes)
...
Не знаю какой индекс ставить, надо индекс добавленой ноди "abc". Это должна быть последняя нода из семейства Nodes1, но я незнаю где взять количество елементов в Nodes1 ...
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 08.09.04 10:46
TreeView.Nodes(0).Nodes.Count
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 08.09.04 13:14
это разве способ...
Count = SendMessage(hTreeView, TVM_GETCOUNT), cNull, ByVal 0&
Вот это способ
Номер ответа: 5
Автор ответа:
Barulya
Вопросов: 29
Ответов: 55
Профиль | | #5
Добавлено: 08.09.04 15:18
Может быть я и ошибаюсь, но вот это должно помочь
T.Nodes.Item(0).GetNodeCount(true)
Номер ответа: 6
Автор ответа:
danser
ICQ: 299287824
Вопросов: 76
Ответов: 209
Профиль | | #6
Добавлено: 08.09.04 15:44
Павел, где ты взял свойство Count?
Номер ответа: 7
Автор ответа:
danser
ICQ: 299287824
Вопросов: 76
Ответов: 209
Профиль | | #7
Добавлено: 08.09.04 16:00
Вот вроде работает:
f(Nodes1)
...
Dim i as integer
i=(Nodes1.Add("abc").Index
f(Nodes1.Item(i).Nodes)
...
Номер ответа: 8
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #8
Добавлено: 08.09.04 16:04
См в MSDN раздел по TreeNodeCollection:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1033/cpref/html/frlrfsystemwindowsformstreenodecollectionclasscounttopic.htm
TreeNodeCollection.Count Property
Gets the total number of TreeNode objects in the collection.
Property Value
The total number of TreeNode objects in the collection.
Implements
ICollection.Count
Remarks
The Count property holds the number of TreeNode objects assigned to the collection. You can use the Count property value as the upper bounds of a loop to iterate through a collection.
Note Because the index value of a collection is a zero-based index, you must subtract one from the looping variable. If you do not account for this, you will exceed the upper bounds of the collection and throw an IndexOutOfRangeException exception.
Example
The following example displays the number of TreeNode objects in a TreeNodeCollection and copies the contents of the collection to an Object array and displays a list of the tree nodes in a Label control. This example assumes you have a TreeView with at least one TreeNode in its TreeNodeCollection and a Label control on a Form.
Private Sub CopyTreeNodes()
' Get the collection of TreeNodes.
Dim myNodeCollection As TreeNodeCollection = myTreeView.Nodes
Dim myCount As Integer = myNodeCollection.Count
myLabel.Text += "Number of nodes in the collection :" + myCount.ToString()
myLabel.Text += ControlChars.NewLine + ControlChars.NewLine + _
"Elements of the Array after Copying from the collection :" + ControlChars.NewLine
' Create an Object array.
Dim myArray(myCount -1) As Object
' Copy the collection into an array.
myNodeCollection.CopyTo(myArray, 0)
Dim i As Integer
For i = 0 To myArray.Length - 1
myLabel.Text += CType(myArray(i), TreeNode).Text + ControlChars.NewLine
Next i
End Sub
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family, .NET Compact Framework - Windows CE .NET
Номер ответа: 9
Автор ответа:
danser
ICQ: 299287824
Вопросов: 76
Ответов: 209
Профиль | | #9
Добавлено: 08.09.04 20:01
Может я английский и не знаю хорошо...
Я попробовал ввести строки:
Dim Col As TreeNodeCollection = Me.TreeView1.Nodes
dim Count as Integer=col."Нету свойства Count!!!"
Ну нету свойства Count хоть убей!!!
Может я что-то не так понимаю или студия у меня не та... но разве это от студии зависит...
Номер ответа: 10
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #10
Добавлено: 09.09.04 17:22
IntelliSense в VS .Net 2002 почему-то свойство Count в списке не
показывает, но оно есть и работает нормально. Вот такой код у меня
выдает "1":
Dim T As New TreeView()
T.Nodes.Add("123")
MessageBox.Show(T.Nodes.Count)
Номер ответа: 11
Автор ответа:
danser
ICQ: 299287824
Вопросов: 76
Ответов: 209
Профиль | | #11
Добавлено: 10.09.04 00:36
Да ты прав, свойство есть только не отображается, спасибо всем кто помог понять