none
c#关于文件拖拽到窗体如何获得文件名 RRS feed

  • 问题

  • 例如我从桌面里的文件托到窗体里的TEXTBOX里,让text属性显示文件名称,这个应该如何写,请给个实例,先谢谢了!
    2010年7月27日 16:05

答案

  •        private void label1_DragDrop(object sender, DragEventArgs e)
            {
                label1.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
            }

            private void label1_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop))
                {
                    e.Effect = DragDropEffects.Link;
                }
                else
                {
                    e.Effect = DragDropEffects.None;
                }
            }

     

    这个是我找了半天才找到了,不知道为什么要先在DragEnter事件处理程序里把e.Effect 设置值!

    • 已标记为答案 桂磊 2010年7月28日 15:10
    2010年7月28日 15:10

全部回复

  • 设置textBox1.AllowDrop=True。然后,处理如下事件:

    private void textBox1_DragEnter(object sender, DragEventArgs e)
    {
        string fileName = ((string[])e.Data.GetData(DataFormats.FileDrop))[0];
        textBox1.Text = fileName;
    }

     

    2010年7月27日 19:01
  •        private void label1_DragDrop(object sender, DragEventArgs e)
            {
                label1.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
            }

            private void label1_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop))
                {
                    e.Effect = DragDropEffects.Link;
                }
                else
                {
                    e.Effect = DragDropEffects.None;
                }
            }

     

    这个是我找了半天才找到了,不知道为什么要先在DragEnter事件处理程序里把e.Effect 设置值!

    • 已标记为答案 桂磊 2010年7月28日 15:10
    2010年7月28日 15:10