当前位置:首页 > 开发 > C# > 正文内容

C#Winform接受拖放文件

C#2个月前 (01-10)
        public Form1()
        {
            InitializeComponent();

            this.AllowDrop = true; // 关键步骤1:允许窗体接受拖放
            this.DragEnter += new DragEventHandler(MainForm_DragEnter);
            this.DragDrop += new DragEventHandler(MainForm_DragDrop);
        }

        private void MainForm_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))// 关键步骤2:检查拖入的是否是文件
            {
                e.Effect = DragDropEffects.Copy; // 设置鼠标为“复制”效果
            }
        }

        private void MainForm_DragDrop(object sender, DragEventArgs e)
        {
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);// 关键步骤3:用户松开鼠标后,获取文件路径
            foreach (string file in files)
            {
                Console.WriteLine(file);
            }
        }


Lambda形式

public Form1()
{
    InitializeComponent();

    this.AllowDrop = true; // 关键步骤1:允许窗体接受拖放
    this.DragEnter += (sender, e) =>
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop)) // 关键步骤2:检查拖入的是否是文件
            e.Effect = DragDropEffects.Copy; // 设置鼠标为"复制"效果
    };
    this.DragDrop += (sender, e) =>
    {
        string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); // 关键步骤3:用户松开鼠标后,获取文件路径
        foreach (string file in files)
        {
            Console.WriteLine(file);
        }
    };
}


转载请注明出处。

本文链接:http://pythonopen.com/?id=7936

相关文章

C# 获取Windows系统目录

Environment.GetFolderPath(Environment.SpecialFolde...

C# BackgroundWorker,在DoWork里更新控件内容

一般情况下不可以直接在BackgroundWorker的DoWork事件中更新 UI 控件在Back...

C# i++和++i的区别

核心区别操作顺序            ...

C# 比较两个Image对象是否相同

方法思路基础检查:先检查空引用和图像尺寸像素格式验证:确保两个图像的像素格式相同内存锁定:使用Loc...

C# Lambda表达式例子

        &n...