2010-10-31 22 views
4

我正在使用Excel 2007,VS2008 Pro。 我正在构建一个VSTO加载项,它需要“从Excel单元格拖放到启用拖拽的任务窗格”。如何以编程方式从Excel单元拖放到启用拖动的任务窗格?

到目前为止,我注意到我只能在单元格内拖放。它不允许我拖入任务窗格或拖过表单限制。 (http://www.computerimages.com/tip_xl.html)

注意:任务窗格已启用拖放功能,我已经测试了我可以从任务窗格拖放到Excel,但我需要执行此操作另一种方式?

+0

[拖放和拖放到自定义任务窗格在Excel VSTO(可能重复http://stackoverflow.com/questions/5670505/drag-拖放到自定义任务窗格功能于Excel的VSTO) – Gareth 2011-04-26 13:57:29

回答

1

从IDE中,在要控制数据的控件上设置AllowDrop,然后在该控件上连接DragOverDragDrop的事件。

您的代码将是这个样子:

TextBox TaskPane; 

void DragNDrop(object sender, DragEventArgs e) { 
    if (e.Effect == DragDropEffects.Move) { 
    if (e.Data.GetDataPresent(DataFormats.CommaSeparatedValue)) { 
     string csvText = e.Data.GetData(DataFormats.CommaSeparatedValue, false).ToString(); 
     if (!String.IsNullOrEmpty(csvText)) { 
     TaskPane.Text = csvText; 
     } 
    } 
    } 
} 

void DragOver(object sender, DragEventArgs e) { 
    if (!e.Data.GetDataPresent(DataFormats.CommaSeparatedValue)) { 
    e.Effect = DragDropEffects.None; 
    } else { 
    e.Effect = DragDropEffects.Move; 
    } 
} 
相关问题