在Excel VSTO中,可以通过拖放操作将项目添加到自定义任务窗格。

6

啊,我卡住了!

我正在编写一个Excel插件,它会打开一个自定义任务窗格(这是一种数据分析工具类型的东西)。为了提高生产力,我希望用户能够将对象(例如文件或电子邮件附件)拖动到任务窗格的某个部分进行处理,而不必通过一个或多个文件对话框。

问题在于,Excel似乎完全覆盖了自定义任务窗格及其包含的控件的拖放属性,因此当我将文件拖到任务窗格上时,Excel只是尝试将其作为电子表格打开(如果它是受支持的文件类型,则会成功),而我的DragDrop事件从未触发。

有没有办法让Excel停止这样做,以便将拖放事件发送到任务窗格?

1个回答

5

好的,我找到了一种方法。原来DragDrop事件不会触发,因为Excel会自己处理所有的拖放事件,但是DragEnter事件确实会触发,当它触发时,我可以在实际的目标区域上打开一个非模态窗体。这个窗体可以接收DragDrop事件(并在DragLeave事件中关闭自身)。虽然有点hack,但似乎效果不错。


3
你好。你打开的表单对用户可见吗?我也遇到了同样的问题,所以我很想看看你编写的代码。 - anakic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接