Results 1 to 3 of 3

Thread: Treeview Highlight Node on itemdrag over

  1. #1

    Thread Starter
    Hyperactive Member kxcntry99's Avatar
    Join Date
    Jun 2006
    Location
    Pennsylvania
    Posts
    342

    Arrow Treeview Highlight Node on itemdrag over

    All:

    I am working on an an explorer form project where I have one treeview and one listview. I have all of my drag and drop functionality working as expected. However, I would like to highlight the treeview node the user is hovering over when draging items from one folder to another. This is the same functionality as windows provides in windows explorer.

    Thus far I have been successful in changing the backcolor of the node using the dragover event. However, once I move away from the node, the backcolor does not change back to white. I have looked at the dragleave event but my code does not seem to work in reverse. Any ideas on how I can change the backcolor after moving away from a node???

    Code:
    Private Sub TreeView_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView.DragOver
            Dim loc As Point = (CType(sender, TreeView)).PointToClient(New Point(e.X, e.Y))
            'node of the tree we are dragging to 
            Dim destNode As TreeNode = (CType(sender, TreeView)).GetNodeAt(loc)
            ' destNode.BackColor = Color.CadetBlue
        End Sub
    Microsoft Office Integration:Useful Database Links:
    Connection Strings


    Im a pogramar
    Iam a programer
    I’m a programor

    I write code!

  2. #2

    Thread Starter
    Hyperactive Member kxcntry99's Avatar
    Join Date
    Jun 2006
    Location
    Pennsylvania
    Posts
    342

    Re: Treeview Highlight Node on itemdrag over

    any ideas?
    Microsoft Office Integration:Useful Database Links:
    Connection Strings


    Im a pogramar
    Iam a programer
    I’m a programor

    I write code!

  3. #3
    eXtreme Programmer .paul.'s Avatar
    Join Date
    May 2007
    Location
    Chelmsford UK
    Posts
    26,423

    Re: Treeview Highlight Node on itemdrag over

    you need to loop through your treeview nodes + reset the original treeview backcolor before setting destNode backcolor:

    vb Code:
    1. Private Sub TreeView_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView.DragOver
    2.     changeNodeBackColor(TreeView1.BackColor, Nothing)
    3.     Dim loc As Point = (CType(sender, TreeView)).PointToClient(New Point(e.X, e.Y))
    4.     'node of the tree we are dragging to
    5.     Dim destNode As TreeNode = (CType(sender, TreeView)).GetNodeAt(loc)
    6.     destNode.BackColor = Color.CadetBlue
    7. End Sub
    vb Code:
    1. Private Sub changeNodeBackColor(ByVal backColor As Color, Optional ByVal node As TreeNode = Nothing)
    2.     If node IsNot Nothing Then node.BackColor = backColor
    3.     For Each n As TreeNode In If(node IsNot Nothing, node.Nodes, TreeView1.Nodes)
    4.         changeNodeBackColor(backColor, n)
    5.     Next
    6. End Sub

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width