2014-09-30 48 views
-2

我尝试将图片从图片框拖放到Windows资源管理器,但文件不会复制。 也许是因为PictureBox在自定义控制器中不起作用? 临时文件保存成功。将图片拖放到资源管理器

private void _picBox_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left) 
    { 
      var pic = (PictureBox) sender; 
      pic.Image.Save(@"tmp.jpg"); 
      var files = new string[] {@"tmp.jpg"}; 
      var res = pic.DoDragDrop(new DataObject(DataFormats.FileDrop, files), DragDropEffects.Copy | DragDropEffects.Move); 
      MessageBox.Show(res.ToString()); 
    } 
} 
+0

你有没有调试您的应用程序? – 2014-09-30 13:24:06

+0

你能详细说明你的代码“不起作用”吗?你在期待什么,究竟发生了什么?如果您遇到异常,请发布它发生的行和异常详细信息。 – gunr2171 2014-09-30 13:24:15

+0

我没有任何异常。我写到,直到pic.Image.Save(“tmp.jpg”);行都没事。我真的不知道跆拳道发生了,它只是应该工作,而不是。 – santipianis 2014-09-30 13:50:19

回答

0

它仅适用于完整路径

private void _picBox_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left) 
    { 
     var programFullPath = System.Reflection.Assembly.GetExecutingAssembly().Location; 
     var programDirectory = System.IO.Path.GetDirectoryName(programFullPath); 
     var pic = (PictureBox) sender; 
     pic.Image.Save(programDirectory+ @"\tmp.jpg"); 
     var files = new string[] {programDirectory+ @"\tmp.jpg"}; 
     var res = pic.DoDragDrop(new DataObject(DataFormats.FileDrop, files), DragDropEffects.Copy | DragDropEffects.Move); 
     MessageBox.Show(res.ToString()); 
    } 
} 
相关问题