为什么有些Office对象的事件无法使用
今天碰到了个问题,发现无法使用某些对象事件,+=后双TAB出不来。
四处找原因,GOOGLE、MSDN上翻了许久,终于找到了原因和解决方法。
原因:写了一个同名的方法,而VSTO处理规则应该是方法>事件,所以有了同名的方法后事件就无法使用了。
如已经写了下面的方法:
void ThisWorkbook_ActivateEvent() { MessageBox.Show("b"); }
如果再写Globals.ThisWorkbook.ActivateEvent+=,双TAB后会报以下提示:
此类中已存在处理程序”ThisWorkbook_ActivateEvent”,提示后会默认使用这个方法,明显,我们并不希望这个事件去使用这个方法,而是希望重写一段处理过程代码。
解决:命名为Excel.XXXEvents_Event类型
((Excel.WorkbookEvents_Event)(Globals.ThisWorkbook.InnerObject)).Activate += new Microsoft.Office.Interop.Excel.WorkbookEvents_ActivateEventHandler(ThisWorkbook_Activate);
问题至此完美解决。
不过这个问题一般大家都不会碰到,因为一般没人会ThisWorkbook_ActivateEvent这样写吧。
作者:laoyebin(Paladin.lao)
出处:http://www.cnblogs.com/laoyebin/
网赚 :https://laoyebin.com/
优惠码发布:https://yhmfb.com/
导读网:https://daodu.co/
外汇吧:https://waihui.pub/
本文版权归作者和博客园共有,欢迎转载,但请保留作者信息和原文链接,非常感谢。
反馈文章质量,你可以通过快速通道评论: