C# WinForm .net Drag Drop

C# WinForm .net Drag Drop

    .net 的WinForm中要支持拖放,必须做两方面的工作----源和目的

    源:在MouseDown事件中加入:DoDragDrop
        lbxDomain.DoDragDrop(lbxDomain.SelectedItem, DragDropEffects.Copy)

    目的:
        1.设AllowDrop = true
        2.在DragOver,DragDrop,DragEnter事件中处理
        private void txtDDL_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;           
         } 
        private void txtDDL_DragDrop(object sender, DragEventArgs e)
        {
           object obj = e.Data.GetData(DataFormats.Text);
         }
 
============
下面给一个简单实例

1.创建工程,放置一个 ListBox,用来接受从桌面或是资源管理器拖来的文件,命名为 listBox1

2.在设计器或代码中设置 listBox1 的 AllowDrop = true

3.为 listBox1 添加 DragEnter 和 DragDrop 事件代码
        private void listBox1_DragEnter(object sender, DragEventArgs e)
        {
            //判断拖入的对象格式
            if (e.Data.GetDataPresent(DataFormats.FileDrop, true) == true)
            {
                //允许拖放
                e.Effect = DragDropEffects.All;
            }
        }

        private void listBox1_DragDrop(object sender, DragEventArgs e)
        {
            //获取文件列表(文件夹会被当作文件处理)
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);

            //添加拖入的文件
            foreach (string file in files)
            {
                listBox1.Items.Add(file);
            }

            //或者这样
            //listBox1.Items.AddRange(files);

        }
 
===========
原文地址:https://www.cnblogs.com/ceachy/p/2149101.html