Mookie_jones
Member
- Joined
- Oct 23, 2005
- Messages
- 16
- Programming Experience
- Beginner
I know you guys arent here to fix my code... but i have run into a problem
what i am doing is using a treeview to read a file that has been loaded into a text box.
everytime the word ";fold" appears, it will create a new treenode and add children to it until the word ";endfold" appears.
I have it working good up to the point of adding folds within folds.
i can get on into it but the second fold within is where i am having the trouble.
here is the code that i have
what i am doing is using a treeview to read a file that has been loaded into a text box.
everytime the word ";fold" appears, it will create a new treenode and add children to it until the word ";endfold" appears.
I have it working good up to the point of adding folds within folds.
i can get on into it but the second fold within is where i am having the trouble.
here is the code that i have
VB.NET:
Private Sub rtb_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtb.TextChanged
If donechanging = False Then
Dim i, a As Integer
Dim newname As String
tv.Nodes.Clear()
tv.BeginUpdate()
Dim nodeinfo() As String
Dim nodename As String
Dim temp() As String
For i = 0 To rtb.Lines.Length - 1
If InStr(UCase(rtb.Lines(i)), ";FOLD") Then
Dim tvnode As New TreeNode
temp = Split(UCase(rtb.Lines(i)), ";FOLD")
temp(1) = Trim(temp(1))
If temp(1).Trim.Substring(0, 1) = ";" Then
temp = Split(temp(1).Trim, ";")
nodename = temp(1)
tvnode = Me.tv.Nodes.Add(temp(1))
tvnode.Nodes.Add(rtb.Lines(i))
Else
nodename = temp(1)
temp = Split(temp(1), ";") ' added for moves
tvnode = Me.tv.Nodes.Add(temp(0)) ' was a 1, now a 0 for movement
tvnode.Nodes.Add(rtb.Lines(i))
End If
While (i <= rtb.Lines.Length - 1) And (InStr(UCase(rtb.Lines(i)), ";ENDFOLD") = False)
If InStr(UCase(rtb.Lines(i)), ";ENDFOLD") = False Then
i = i + 1
End If
' need to find fold within fold
If InStr(UCase(rtb.Lines(i + 1)), ";FOLD") Then
tvnode.Nodes.Add(rtb.Lines(i))
While (i <= rtb.Lines.Length - 1) And (InStr(UCase(rtb.Lines(i)), ";ENDFOLD") = False)
If InStr(UCase(rtb.Lines(i)), ";ENDFOLD") = False Then
i = i + 1
End If
If InStr(UCase(rtb.Lines(i)), ";FOLD") Then
temp = Split(UCase(rtb.Lines(i)), ";FOLD")
temp(1) = Trim(temp(1))
If temp(1).Trim.Substring(0, 1) = ";" Then
temp = Split(temp(1).Trim, ";")
nodename = temp(1)
tvnode = tvnode.Nodes.Add(temp(1)) ' was a 1, now a 0 for movement
Else
nodename = temp(1)
temp = Split(temp(1), ";") ' added for moves
tvnode = tvnode.Nodes.Add(temp(0)) ' was a 1, now a 0 for movement
tvnode.Nodes.Add(rtb.Lines(i))
End If
Else
If InStr(LCase(rtb.Lines(i)), ";endfold") = False Then
tvnode.Nodes.Add(rtb.Lines(i))
End If
End If
' need to find one more fold within fold
End While
End If
If InStr(LCase(rtb.Lines(i)), ";endfold") = False Then
tvnode.Nodes.Add(rtb.Lines(i))
End If
' is speed ptp?
End While
Else
If InStr(LCase(rtb.Lines(i)), ";endfold") Then
Else
tv.Nodes.Add(rtb.Lines(i))
myselectednode = tv.Nodes(tv.Nodes.Count - 1)
myselectednode.BeginEdit()
tv.Parent.ForeColor = Color.Orange
myselectednode.EndEdit(False)
End If
End If
Next
tv.EndUpdate()
' rtb.Enabled = False
donechanging = True
End If
End Sub