2009-09-02 21 views

Respuesta

16

de escribir este código basado en este link

public partial class Form1 : Form 
    { 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     textBox1.AllowDrop = true; 
     textBox1.DragEnter += new DragEventHandler(textBox1_DragEnter); 
     textBox1.DragDrop += new DragEventHandler(textBox1_DragDrop); 

    } 

    private void textBox1_DragEnter(object sender, DragEventArgs e) 
    { 
     if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
     e.Effects = DragDropEffects.Copy; 
     else 
     e.Effects = DragDropEffects.None; 
    } 

    private void textBox1_DragDrop(object sender, DragEventArgs e) 
    { 
     string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false); 


    string s=""; 

    foreach (string File in FileList) 
    s = s+ " "+ File ; 
    textBox1.Text = s; 
    } 
    } 
0

Control tiene varios eventos para tratar con la función de arrastrar/soltar; probablemente solo tendrá que mirar el evento DragDrop para lo que desee.

4

Conjunto AllowDrop true en el cuadro de texto y escribir el siguiente código para los eventos DragDrop y DragEnter:

private void textBox1_DragEnter(object sender, DragEventArgs e) 
    { 
     if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
     { 
      e.Effect = DragDropEffects.Copy; 
     } 
    } 

    private void textBox1_DragDrop(object sender, DragEventArgs e) 
    { 
     if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
     { 
      string[] fileNames = (string[])e.Data.GetData(DataFormats.FileDrop); 
      textBox1.Lines = fileNames; 
     } 
    } 
0

CodeProject has a really nice example de hacer esto , incluyendo cómo habilitar arrastrar y soltar en ambos sentidos (desde el Explorador a su aplicación y desde su aplicación al Explorador).

0

Si se obtienen los siguientes mensajes de error, esto se aplica a mí cuando se utiliza Visual Studio 2015, intenta e.Effect en lugar de e.Effects

código de gravedad Descripción del Proyecto Estado de supresión de línea del archivo CS1061 error 'DragEventArgs' no contiene una definición para 'Efectos' y no se pudo encontrar ningún método de extensión 'Efectos' que aceptara un primer argumento de tipo 'DragEventArgs' (¿falta una directiva using o una referencia de ensamblado?)

Cuestiones relacionadas