c# 窗体与窗体外的文件互动(拖拽)

大部分控件都有此事件drag相关。

以picturebox为例:

pictureBox1.AllowDrop = true;//此属性需要全打出来,不会自动识别添加
private void pictureBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Copy;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }
/// <summary>
        /// 此事件需要配合DragEnter事件才能响应
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void pictureBox1_DragDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                string[] path = (string[])e.Data.GetData(DataFormats.FileDrop);
                if (System.IO.File.Exists(path[0]))
                {
                    pictureBox1.Image = Image.FromFile(path[0]);
                }
            }
        }
原文地址:https://www.cnblogs.com/gaara-zhang/p/9810815.html