Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Chuvak
-
- Продвинутый пользователь
-
-
- Сообщения: 102
- Зарегистрирован: 11.03.2003 (Вт) 8:39
- Откуда: Russia, Ozёrsk
-
Chuvak » 06.05.2003 (Вт) 11:03
допустим есть дерево в TreeView:
- Код: Выделить всё
1
11
12
13
14
15
2
3
4
надо при нажатии на кнопку переместить узел, например, "14" выше
т.е., чтобы стало так:
- Код: Выделить всё
1
11
12
14
13
15
2
3
4
как это можно сделать?
-
RayShade
-
- Scarmarked
-
-
- Сообщения: 5511
- Зарегистрирован: 02.12.2002 (Пн) 17:11
- Откуда: Russia, Saint-Petersburg
-
RayShade » 06.05.2003 (Вт) 11:11
Вот так примерно:
- Код: Выделить всё
Public Sub tvMoveTreeItem(Optional direction As String = "DOWN")
Dim st As String
Dim ndx As Node
Dim vname, vkey, vimage, vimagesel As String
If tvXML.SelectedItem Is Nothing Then Exit Sub
If tvXML.Nodes.Count = 1 Then Exit Sub
Select Case direction
Case "UP":
If tvXML.SelectedItem.Previous Is Nothing Then Exit Sub
vkey = tvXML.SelectedItem.Key
vimage = tvXML.SelectedItem.Image
vname = tvXML.SelectedItem.Text
vimagesel = tvXML.SelectedItem.SelectedImage
st = tvXML.SelectedItem.Previous.Key
tvXML.Nodes.Remove tvXML.SelectedItem.Key
Set ndx = tvXML.Nodes.Add(st, tvwPrevious, vkey, vname, vimage, vimagesel)
Set tvXML.SelectedItem = ndx
Case "DOWN":
If tvXML.SelectedItem.Next Is Nothing Then Exit Sub
vkey = tvXML.SelectedItem.Key
vimage = tvXML.SelectedItem.Image
vimagesel = tvXML.SelectedItem.SelectedImage
vname = tvXML.SelectedItem.Text
st = tvXML.SelectedItem.Next.Key
tvXML.Nodes.Remove tvXML.SelectedItem.Key
Set ndx = tvXML.Nodes.Add(st, tvwNext, vkey, vname, vimage, vimagesel)
Set tvXML.SelectedItem = ndx
End Select
End Sub
-
Chuvak
-
- Продвинутый пользователь
-
-
- Сообщения: 102
- Зарегистрирован: 11.03.2003 (Вт) 8:39
- Откуда: Russia, Ozёrsk
-
Chuvak » 06.05.2003 (Вт) 11:37
так-то всё ништяк, а вот если дерево такое:
- Код: Выделить всё
1
11
111
111
12
121
122
123
13
131
14
141
142
15
151
2
3
4
короче, если у узлов есть вложенные узлы
-
Chuvak
-
- Продвинутый пользователь
-
-
- Сообщения: 102
- Зарегистрирован: 11.03.2003 (Вт) 8:39
- Откуда: Russia, Ozёrsk
-
Chuvak » 06.05.2003 (Вт) 11:42
буду ждать
-
Chuvak
-
- Продвинутый пользователь
-
-
- Сообщения: 102
- Зарегистрирован: 11.03.2003 (Вт) 8:39
- Откуда: Russia, Ozёrsk
-
Chuvak » 06.05.2003 (Вт) 12:45
реальное спасибо
-
RayShade
-
- Scarmarked
-
-
- Сообщения: 5511
- Зарегистрирован: 02.12.2002 (Пн) 17:11
- Откуда: Russia, Saint-Petersburg
-
RayShade » 06.05.2003 (Вт) 13:19
Код довольно сумбурен
Но разобраться можно. Если вопросы будут то пиши.
-
Chuvak
-
- Продвинутый пользователь
-
-
- Сообщения: 102
- Зарегистрирован: 11.03.2003 (Вт) 8:39
- Откуда: Russia, Ozёrsk
-
Chuvak » 06.05.2003 (Вт) 13:31
одна проблема появилась при перемещении узла без вложений
- Код: Выделить всё
If vkey Like "KEY*" Then
Set ndx = var_TreeView.Nodes.Add(st, tvwNext, vkey, vname, vimage)
Else
Set ndx = var_TreeView.Nodes.Add(st, tvwNext, vkey, vname, vimage)' в этой строке
End If
пишет ошибку "Element not found"
-
AndyGee
-
- Начинающий
-
-
- Сообщения: 8
- Зарегистрирован: 03.02.2003 (Пн) 10:37
- Откуда: Kyrgyzstan
-
AndyGee » 06.05.2003 (Вт) 14:05
А можно мне этот код, пожалуйста!
andygee@aub.kg
-
Chuvak
-
- Продвинутый пользователь
-
-
- Сообщения: 102
- Зарегистрирован: 11.03.2003 (Вт) 8:39
- Откуда: Russia, Ozёrsk
-
Chuvak » 07.05.2003 (Ср) 5:56
всё, я разобрался, всё пашет
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61