急!特急!C#不能清空OFFICE2010的剪贴板Clipboard
用C#开发Excel2010的VSTO项目,虽然使用了Clipboard.Clear(),但不能清空OFFICE2010的剪贴板Clipboard,现象是代码进行清空后,通过Clipboard.GetDataObject().GetFormats()方法查看已经没有可用数据类型了,但Excel的Sheet里边还能粘贴,另外通过FFICE2010的剪贴板监视窗口的清空button已经清空了窗口,但Excel的Sheet里边仍然能粘贴,不知什么原因,难道OFFICE2010没有和系统剪贴板进行交互管理?
------解决方案--------------------没错,Office从2000开始,引入了多重剪贴板,它会维护系统剪贴板上的支持的剪贴项,而不受剪贴板本身制约。
------解决方案--------------------Clipboard.Clear(),清空的是系统剪贴板,
而office是多重剪贴板,就像版主所说的一样,他会自动维护
------解决方案--------------------实在不行时,你可以选择使用钩子!
------解决方案--------------------
没用过VSTO,但是给你一个一般性的建议。你可以在Excel中录制一个宏,Excel支持只粘贴文本而不要格式的操作。你操作完了,再停止录制宏,打开VBA编辑器,看看生成的代码,照着写。