Visual Basic.NET - operacion arrastrar y colocar

 
Vista:

operacion arrastrar y colocar

Publicado por elena (5 intervenciones) el 10/07/2005 00:27:36
podria decirme alguien como puedo realizar las operciones de arrastrar y colocar dentro de un treeview?

GRACIAS POR LEERLO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:operacion arrastrar y colocar

Publicado por Luis Alberto Pérez (6 intervenciones) el 10/07/2005 02:43:15
Entiendo que quiere Arrastrar del treeview y soltar en el mismo Treeview. Si es así debes hacer varias cosas:

1.- En el evento MouseMove del treeview debes disparar el evento DoDragDrop del Treeview. Aquí indicas el objeto que estas moviendo y el efecto deseado (copiar o mover). En este ejemplo movemos la propiedad Text del nodo seleccionado utilizamos el efecto Move (Esto automaticamente manejará los tipos de cursor de acuerdo al efecto escojido).

TreeView1.DoDragDrop(TreeView1.SelectedNode.Text, DragDropEffects.Move)

2.- La propiedad AllowDrop del Treeviewdebes ponerla en true. Esto lo podrías hacer dentro del mismo evento MouseMove.

3.- Debes controlar los eventos DragOver y DragEnter del Treeview. En el DragOver tienes que controlar el nodo donde te encuestras con un código similar a este:

Dim x, y As Integer
x = PointToClient(New Point(e.X, e.Y)).X - TreeView1.Location.X
y = PointToClient(New Point(e.X, e.Y)).Y - TreeView1.Location.Y
mySelectedNode = TreeView1.GetNodeAt(x, y)
If Not (mySelectedNode Is Nothing) Then
Me.TreeView1.SelectedNode = mySelectedNode
Me.TreeView1.SelectedNode.Expand()
Me.TreeView1.Select()
End If

En el Evento DragEnter tienes que indicar los efectos de la accion:
Este código sirve para el caso de arrastrar un texto sobre el trreview. Si arrastras otro tipo de dato tendrás que chequearlo de forma similar.

Private Sub TreeView1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragEnter
If (e.Data.GetDataPresent(DataFormats.Text)) Then
e.Effect = DragDropEffects.Move
Else
e.Effect = DragDropEffects.None
End If
End Sub

Por último en el evento DragDrop del mismo Treeview manejas el efecto de mover o de copiar según halla sido el caso.

Good Luck !!!!!!

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar