如何以编程方式从Excel单元格拖放到启用拖动的任务窗格?

时间:2010-10-31 02:52:12

标签: c# vb.net excel interop vsto

我正在使用Excel 2007,VS2008 Pro。 我正在构建一个VSTO加载项,需要“从Excel单元格拖放到启用拖动的任务窗格”。

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

注意:任务窗格已启用拖拽,我已经测试过我可以从任务窗格拖放到excel但是我需要反过来这样做吗?

1 个答案:

答案 0 :(得分: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;
  }
}