如何实现C# WinForm 多个文件上传,上传方式不是用给定路径的方式,是用鼠标的拖拽,把文件拖到文本框中,之后点击按钮实现多文件上传 ?
该用什么控件,如何操作,谢谢,各位大哥大姐了?分数多多

解决方案 »

  1.   

    如何实现C#   WinForm   多个文件上传,上传方式不是用给定路径的方式,是用鼠标的拖拽,把文件拖到文本框中,之后点击按钮实现多文件上传   ? 
    该用什么控件,如何操作,谢谢,各位大哥大姐了?分数多多
    -------------------------------------------------------我有一个笨办法,您先试试,不过肯定好用!使用 RichTextBox 控件,第一它支持拖放,而且支持多文件的拖放;首先将EnableAutoDragDrop 属性设置成真表示支持文件拖放
    然后定义DragDrop事件,如下:
            private void Form1_Load(object sender, EventArgs e)
            {            this.richTextBox1.DragDrop += new DragEventHandler(richTextBox1_DragDrop);
            }
    在定义richTextBox1_DragDrop方法的时候注意事件参数那么 e.Data.GetData("FileName") 这个方法返回的是拖放到 RichTextBox 控件上的文件名,它是一个字符串数组类型,因为它支持多文件同时拖放,所以是数组,其实就是多个文件的名称,有了它们就可以使用 System.IO.File 类对文件进行操作了。如果有不清楚的您还可以继续问。
      

  2.   

    WinForm的话,要嘛socket,要嘛FTP,而且你的要求业务结合,应该没有这类控件,如果只是FTP或Socket,C#已经自带了。
      

  3.   

    上传的文件的类型,不是固定的,拖放到RichTextBox   控件上时我文件在控件上我想让它显示上传文件的名字
      

  4.   

    richTextBox1.Text += ((string[])e.Data.GetData("FileName"))[0].ToString();
      

  5.   

    那用ListView 可以进行排序的...也支持拖放.
      

  6.   

    1楼的代码我试过了,不能得到文件名,下面是我从网上找的,可以用的。 本文例子是c#中实现文件拖放打开的方法,例子较简单,所以注解不写很多了,有点.net底子的朋友应该都能看懂。   private void Form1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
      {
      if (e.Data.GetDataPresent(DataFormats.FileDrop))
      e.Effect = DragDropEffects.Link; 
      else e.Effect = DragDropEffects.None; 
      }  private void Form1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
      {
      //其中label1.Text显示的就是拖进文件的文件名;
      label1.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString(); 
      } 
      

  7.   

            private void Form1_Load(object sender, EventArgs e)
            {
                this.richTextBox1.DragEnter += new DragEventHandler(richTextBox1_DragEnter);
                this.richTextBox1.DragDrop += new DragEventHandler(richTextBox1_DragDrop);
            }
            void richTextBox1_DragDrop(object sender, DragEventArgs e)
            {
                label1.Text = string.Empty;
                foreach (string s in e.Data.GetFormats())
                {
                    label1.Text = label1.Text + "\n" + s;
                }
                richTextBox1.Text = ((string[])e.Data.GetData("FileName"))[0].ToString();
                richTextBox1.Text   +=   ((string[])e.Data.GetData("FileName"))[0].ToString();
            }
    //重新试一下...我都是试过的例子才发上来的.
      

  8.   

    this.richTextBox1.DragDrop   +=   new   DragEventHandler(richTextBox1_DragDrop); 
    这句是什么意思?
      

  9.   

    上传到 richtextbox 里,文件的边框怎么设置? 
      

  10.   

    但是如果是文件在中文路径下,
    richTextBox1.Text = ((string[])e.Data.GetData("FileName"))[0].ToString();
    就没有办法获得文件的后缀名了。
    纠结呀?????
      

  11.   

    所以可以使用:
    richTextBox1.Text = ((string[])e.Data.GetData("FileNameW"))[0].ToString();来获得中文路径下的图片。