问题1
http://www.csdn.net/cnshare/soft/4/4589.shtm

解决方案 »

  1.   

    在vb里我没用过treeview,但在delphi里我用得多了,实现也非常的容易,代码只要几十行就够了
      

  2.   

    1,先获得treeview的级数,
    2,从最底下的儿子往上取parent.text,添加到数据库
    3,clear
    4,倒入到treeview
      

  3.   

    Public Class xi
        Private i, j, k As Integer
        Public Shared Function replace(ByVal strsource As String, ByVal r As String, ByVal b As String) As String
            Dim f As Integer
            Dim s As String
            f = 0
            s = strsource.ToLower
            If s.Length > r.Length Then
                Do While f <= s.Length - r.Length
                    If s.Substring(f, r.Length) = r Then
                        If f = 0 Then
                            s = b + s.Substring(r.Length)
                        ElseIf f >= 1 Then
                            s = s.Substring(0, f - 0) + b + s.Substring(f + r.Length)
                        End If
                        f = f + r.Length
                    Else
                        f = f + 1
                    End If
                Loop
            Else
                s = strsource
            End If
            Return s
        End Function
        Public Shared Function isdigit(ByVal ds As String) As Boolean
            Dim e As Double
            If ds <> "" Then
                If ds.Substring(ds.Length - 1, 1) = "+" Or ds.Substring(ds.Length - 1, 1) = "-" Or ds.Substring(0, 1) = "+" Or ds.Substring(0, 1) = "-" Then
                    Return False
                Else
                    Try
                        e = CDbl(ds)
                        Return True
                    Catch
                        Return False
                    Finally
                    End Try
                End If
            End If
        End Function
      

  4.   

    *续
    Public Shared Function isdigitS(ByVal s As String, ByVal n As Integer) As Boolean
            If n > 1 Then
                If n > 2 Then
                    If isdigit(s.Substring(0, n - 1)) And (s.Substring(n - 1, 1).ToLower = "e") Then
                        Return True
                    ElseIf isdigit(s.Substring(0, n - 1)) And (s.Substring(n - 1, 1).ToLower = ".") Then
                        Return True
                    ElseIf isdigit(s.Substring(0, n - 2)) And (s.Substring(n - 2, 2).ToLower = "e-") Then
                        Return True
                    ElseIf isdigit(s.Substring(n - 1, 1)) Then
                        Return True
                    Else
                        Return False
                    End If            Else
                    If isdigit(s.Substring(0, 1)) And s.Substring(1, 1).ToLower = "e" Then
                        Return True
                    ElseIf isdigit(s) Then
                        Return True
                    ElseIf isdigit(s.Substring(0, 1)) And s.Substring(1, 1).ToLower = "." Then
                        Return True
                    Else
                        Return False
                    End If
                End If
            Else
                    If isdigit(s.Substring(0, 1)) Then
                        Return True
                    Else
                        Return False
                    End If
                End If
        End Function
        Public Shared Function isop(ByVal dop As String) As Boolean
            If Not isdigit(dop) Then
                If dop = "+" Then
                    Return True
                ElseIf dop = "-" Then
                    Return True
                ElseIf dop = "*" Then
                    Return True
                ElseIf dop = "/" Then
                    Return True
                ElseIf dop = "^" Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End Function
        Public Shared Function isfun(ByVal df As String) As Boolean
            If Not isdigit(df) Then
                If Not isop(df) Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End Function
        Public Shared Function overop(ByVal o1 As String, ByVal o2 As String) As Boolean
            If o1 = o2 Then
                Return False
            ElseIf o2 = "^" Then
                Return True
            ElseIf o1 = "^" Then
                Return False
            ElseIf (o1 = "+" Or o1 = "-") And (o2 = "*" Or o2 = "/") Then
                Return True
            ElseIf (o1 = "*" Or o1 = "/") And (o2 = "+" Or o2 = "-") Then
                Return False
            ElseIf (o1 = "+" And o2 = "-") Or (o1 = "-" And o2 = "+") Then
                Return False
            ElseIf (o1 = "*" And o2 = "/") Or (o1 = "/" And o2 = "*") Then
                Return False
            End If
        End Function
      

  5.   

    *续
      Public Shared Function over(ByVal o1 As String, ByVal o2 As String) As Boolean
            If o1 = "#" And Not (o2 = "#") Then
                Return True
            ElseIf Not (o1 = "#") And o2 = "#" Then
                Return True
            ElseIf o1 = "#" And o2 = "#" Then
                Return True
            ElseIf isop(o1) And isop(o2) Then
                Return overop(o1, o2)
            ElseIf isfun(o1) And o2 = "(" Then
                Return True
            ElseIf o1 = "(" And o2 = ")" Then
                Return False
            ElseIf o1 = "(" And isfun(o2) Then
                Return True
            ElseIf o1 = "(" And o2 = "(" Then
                Return True
            ElseIf o1 = o2 Then
                Return False
            ElseIf Not (o1 = "(") And o2 = "(" Then
                Return True
            ElseIf o1 = "(" And Not (o2 = "(") Then
                Return True
            ElseIf Not (o1 = ")") And o2 = ")" Then
                Return False
            ElseIf isop(o1) And isfun(o2) Then
                Return True
            End If
        End Function
        Public Shared Function read(ByVal s As String) As String()
            Dim c(2) As String
            Dim b As Boolean
            Dim n, k As Short
            k = 1
            n = 0
            If s.Trim <> "" Then
                If s.Substring(0, 1) = "(" Then
                    c(0) = "k"
                    c(1) = "("
                    c(2) = s.Substring(1)
                    Return c
                ElseIf isop(s.Substring(0, 1)) Then
                    c(0) = "op"
                    c(1) = s.Substring(0, 1)
                    c(2) = s.Substring(1)
                    Return c
                ElseIf s.Substring(0, 1) = ")" Then
                    c(0) = "fk"
                    c(1) = ")"
                    c(2) = s.Substring(1)
                    Return c
                ElseIf s.Substring(0, 1) = "#" Then
                    c(0) = "#"
                    c(1) = "#"
                    c(2) = s.Substring(1)
                    Return c
                Else
                    n = 0
                    Do While (n <= s.Length) And ((isdigitS(s, k) Or (isdigit(s.Substring(0, k)))))
                        ' Do While (n <= s.Length) And isdigit(s.Substring(0, k))
                        n = n + 1
                        If n >= s.Length Then
                            k = s.Length
                        Else
                            k = n
                        End If
                    Loop
                    If n > 1 Then
                        c(0) = "digit"
                        c(1) = s.Substring(0, n - 1)
                        c(2) = s.Substring(n - 1)
                        Return c
                    Else
                        If isop(s.Substring(0, 1)) Then
                            c(0) = "op"
                            c(1) = s.Substring(0, 1)
                            c(2) = s.Substring(1)
                            Return c
                            ' ElseIf s.Substring(0, 1) = "(" Then
                            '    c(0) = "k"
                            '   c(1) = "("
                            '  c(2) = s.Substring(1)
                            ' Return c
                            ' ElseIf s.Substring(0, 1) = ")" Then
                            '    c(0) = "fk"
                            '   c(1) = ")"
                            '  c(2) = s.Substring(1)
                            ' Return c
                        Else
                            n = 0
                            k = 0
                            Dim t As Boolean = True
                            Do While t
                                If k < s.Length Then
                                    t = (n < s.Length) And (Not (isdigit(s.Substring(k, 1)))) And (Not (isop(s.Substring(k, 1))) And (Not (s.Substring(k, 1) = "(")))
                                Else
                                    t = False
                                End If
                                n = n + 1
                                If n < s.Length Then
                                    k = n
                                Else
                                    k = 1
                                End If
                            Loop
                            If n < s.Length Then
                                c(0) = "fun"
                                c(1) = s.Substring(0, n - 1)
                                c(2) = s.Substring(n - 1)
                                Return c
                            Else
                                c(0) = "fun"
                                c(1) = s
                                c(2) = ""
                                Return c
                            End If
                        End If
                    End If
                End If
            End If
        End Function
        Public Shared Function func(ByVal fname As String, ByVal x As String) As String
            Dim s As String
            Dim r As Double
            r = CDbl(x)
            Select Case fname.ToLower
                Case "ctg"
                    Try
                        r = Math.Cos(r) / Math.Sin(r)
                        s = CStr(r)
                    Catch
                        s = "000000"
                    End Try
                Case "sh"
                    r = (Math.Exp(r) + Math.Exp(-r)) / 2
                    s = CStr(r)
                Case "ch"
                    r = (Math.Exp(r) - Math.Exp(-r)) / 2
                    s = CStr(r)
                Case "th"
                    r = (Math.Exp(r) - Math.Exp(-r)) / (Math.Exp(r) + Math.Exp(-r))
                    s = CStr(r)
                Case "cth"
                    Try
                        r = (Math.Exp(r) + Math.Exp(-x)) / (Math.Exp(r) - Math.Exp(-r))
                        s = CStr(r)
                    Catch
                        s = "000000"
                    End Try
                Case Else
                    s = "000000"
            End Select
            Return s
        End Function