drag files or folders in textbox? C#

寵の児 提交于 2020-01-12 18:40:39

问题


How do i drag files or folders into a textbox? i want to put the foldername in that very textbox. C# .NET


回答1:


i wrote this code based in this 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;
    }
  }



回答2:


Set AllowDrop to true on your TextBox, and write the following code for the DragDrop and DragEnter events :

    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;
        }
    }



回答3:


CodeProject has a really nice example of doing this, including how to enable drag and drop both ways (from Explorer to your app, and from your app to Explorer).




回答4:


Control has various events for dealing with drag/drop - you'll probably only need to look at the DragDrop event for what you want.




回答5:


If you get the Error Messages below, This applied to me when using Visual Studio 2015, try e.Effect instead of e.Effects

Severity Code Description Project File Line Suppression State Error CS1061 'DragEventArgs' does not contain a definition for 'Effects' and no extension method 'Effects' accepting a first argument of type 'DragEventArgs' could be found (are you missing a using directive or an assembly reference?)



来源:https://stackoverflow.com/questions/1370538/drag-files-or-folders-in-textbox-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!