Re: TreeView ソート


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Uz on 1998/09/29 00:26:20

In Reply to: TreeView ソート Posted by 影武者 on 1998/09/27 05:45:56


    ちょうどUzCodeHelperで使った関数です。
    #メーリングリストに出てました。

    '///////////////////////////////////////////////////////////////////////////
    ' 関数名 : NodeMove
    ' 目的説明 : 選択されているノードを移動する
    ' 前提条件 : なし
    ' 結果 : なし
    ' 引数 : lngFlag Long : 0 上へ移動
    ' 1 下へ移動
    ' 戻り値 : なし
    ' 備考 : なし
    '///////////////////////////////////////////////////////////////////////////
    Private Sub NodeMove(lngFlag As Long)
    Dim oNewNode As Node
    Dim oSelectedNode As Node
    Dim vImage As Variant
    Dim vExpandedImage As Variant
    Dim bExpanded As Boolean
    Dim sKey As String

    Set oSelectedNode = trvTree.SelectedItem

    With oSelectedNode
    If lngFlag = 0 Then
    If .Previous Is Nothing Then Exit Sub
    Set oNewNode = trvTree.Nodes.Add(.Previous.Key, tvwPrevious, , .Text, .SelectedImage)
    ElseIf lngFlag = 1 Then
    If .Next Is Nothing Then Exit Sub
    Set oNewNode = trvTree.Nodes.Add(.Next.Key, tvwNext, , .Text, .SelectedImage)
    End If
    Do
    If .Child Is Nothing Then
    Exit Do
    Else
    If .Child.LastSibling Is Nothing Then
    Set .Child.Parent = oNewNode
    Else
    Set .Child.LastSibling.Parent = oNewNode
    End If
    End If
    Loop

    vImage = .Image
    vExpandedImage = .ExpandedImage
    bExpanded = .Expanded
    sKey = .Key
    End With

    Call trvTree.Nodes.Remove(sKey)

    With oNewNode
    .Image = vImage
    .ExpandedImage = vExpandedImage
    .Expanded = bExpanded
    .Key = sKey
    End With

    Set trvTree.SelectedItem = oNewNode
    End Sub


記事スレッド一覧