15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как использовать полный путь при добавлении пунктов в TreeView

Следующая функция позволяет добавлять пункты в TreeView используя полный путь вместо того, чтобы добавлять каждый элемент дерева в отдельности:

Public Sub AddPathToTree(Tree As TreeView, Path As String)
	Dim PathItem As String
	Dim NewItem As String
	Dim PathLen As Integer
	Dim c As String * 1
	Dim i As Integer

	'Добавляем обратный слэш в качестве разледителя
	If Right$(Path, 1) <> "\" Then Path = Path & "\"

	PathLen = Len(Path)

	'Ищем в полном пути обратные слэши
	For i = 1 To PathLen
		c = Mid$(Path, i, 1)

		If c = "\" Then
			If PathItem = "" Then
				'Добавляем корневую ветвь в дерево
				On Error Resume Next
				Tree.Nodes.Add , , "\" & NewItem, NewItem
				PathItem = "\" & NewItem
			Else
				'Добавляем следующую дочернюю ветвь
				Tree.Nodes.Add PathItem, tvwChild, PathItem _
					& "\" & NewItem, NewItem
				PathItem = PathItem & "\" & NewItem
			End If
			NewItem = ""100
		Else
			NewItem = NewItem & c
		End If
	Next i
End Sub

Теперь при вызове этой функции достаточно в качестве параметра передать ей полный путь. Все необходимые ветви (если они ещё не существуют) будут добавлены автоматически:

	AddPathToTree TreeView1, _
		"RootLevel\Child1\Child2\Child3\Child4"