elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  (SOLUCIONADO) AllowDrop... como narices usarlo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (SOLUCIONADO) AllowDrop... como narices usarlo?  (Leído 2,388 veces)
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.818



Ver Perfil
(SOLUCIONADO) AllowDrop... como narices usarlo?
« en: 21 Noviembre 2012, 15:01 pm »

Hola,

¿Alguien podría darme un ejemplo de como se puede arrastrar una carpeta a un textbox en un winform?

Parece que no es suficiente con la propiedad AllowDrop = True ... y esto tampoco:
Código
  1.       ' Start a drag.
  2.        foldertextbox.DoDragDrop( _
  3.            foldertextbox.Text, _
  4.            DragDropEffects.Copy)

Muchas gracias


« Última modificación: 23 Noviembre 2012, 01:58 am por EleKtro H@cker » En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: AllowDrop... como narices usarlo?
« Respuesta #1 en: 21 Noviembre 2012, 15:13 pm »

Debes filtrar entre que es un archivo y una carpeta porque así recibirás cualquiera de los dos por igual, una de las formas de hacerlo es en el Evento DragEnter, crear un objeto FileInfo, con la ruta del archivo/carpeta recibido y verificar si el archivo posee el Attributes IO.FileAttributes.Directory. Recordando que Attributes es Flags, y se comprueba:

Código
  1. (Info.Attributes And IO.FileAttributes.Directory) = IO.FileAttributes.Directory

Código
  1.    Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop
  2.  
  3.        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
  4.  
  5.            Dim Objetos As String() = e.Data.GetData(DataFormats.FileDrop)
  6.  
  7.            TextBox1.Text = Objetos(0)
  8.  
  9.        End If
  10.  
  11.    End Sub
  12.  
  13.    Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter
  14.  
  15.        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
  16.            e.Effect = DragDropEffects.All
  17.        End If
  18.  
  19.    End Sub


« Última modificación: 21 Noviembre 2012, 15:15 pm por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.818



Ver Perfil
Re: AllowDrop... como narices usarlo?
« Respuesta #2 en: 21 Noviembre 2012, 15:17 pm »

Muchas gracias por la explicación y el ejemplo Keyen!!
En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.818



Ver Perfil
Re: AllowDrop... como narices usarlo?
« Respuesta #3 en: 21 Noviembre 2012, 16:14 pm »

No he podido hacer la comparación entre directorio y archivo, ¿Que estoy haciendo mal?


Código
  1.    Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles foldertextbox.DragDrop
  2.        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
  3.            Dim Objetos As String() = e.Data.GetData(DataFormats.FileDrop)
  4.  
  5.            Dim attributes = Objetos(0)
  6.            If ((attributes And FileAttributes.Directory) = FileAttributes.Directory) Then
  7.                MsgBox("es un dir")
  8.            Else
  9.                MsgBox("no es un dir")
  10.            End If

Citar
Conversion from string "C:\Users\Administrador\Desktop\W" to type 'Long' is not valid.
En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: AllowDrop... como narices usarlo?
« Respuesta #4 en: 21 Noviembre 2012, 16:19 pm »

Debes crear el objeto FileInfo

Código
  1. Dim I As New FileInfo(Objetos(0))

Y de esa variable es que sacas el valor de Attributes.

No he podido hacer la comparación entre directorio y archivo, ¿Que estoy haciendo mal?


Código
  1.    Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles foldertextbox.DragDrop
  2.        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
  3.            Dim Objetos As String() = e.Data.GetData(DataFormats.FileDrop)
  4.  
  5.            Dim attributes = Objetos(0)
  6.            If ((attributes And FileAttributes.Directory) = FileAttributes.Directory) Then
  7.                MsgBox("es un dir")
  8.            Else
  9.                MsgBox("no es un dir")
  10.            End If

En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Me he bajado el age of empires y no se que hacer o como usarlo
Juegos y Consolas
david.canovas 2 1,565 Último mensaje 10 Septiembre 2004, 04:05 am
por Songoku
como narices se descarga de megashares??
Juegos y Consolas
peib0l 6 3,542 Último mensaje 25 Julio 2007, 00:29 am
por Vagueza
XAMPP 1.6.3 como usarlo?
PHP
Enemy 7 6,625 Último mensaje 13 Octubre 2008, 07:54 am
por дٳŦ٭
Arrays en java como usarlo??
Java
IsGoRi2 5 5,983 Último mensaje 11 Junio 2010, 08:32 am
por IsGoRi2
Airbase-ng ¿como usarlo?
Wireless en Linux
deathred 0 2,293 Último mensaje 18 Octubre 2010, 22:38 pm
por deathred
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines