locked
FAQs: 为什么在C#源代码编辑器里Office对象模型的一些事件是不可见的? RRS feed

  • 问题

  • 为了帮助大家更好地学习 VSTO 技术,微软论坛技术支持团队编辑了一些列的 "VSTO 常见问题及解答" 精华帖。

    本帖的主题是:为什么在C#源代码编辑器里Office对象模型的一些事件是不可见的?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 "VSTO 常见问题及解答",请打开索引页面:
    http://social.msdn.microsoft.com/Forums/zh-CN/vstudiozhchs/thread/ed10f3de-40bb-4f16-81f9-25ace1f152ba


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年2月28日 8:52

答案

  • 这种情况经常发生在Office对象的一个方法和事件有相同的名字。默认地,当我们输入统一的名称,Visual Studio将认为这是一个方法而不是事件。

    为了正确地使用这个事件,首先我们需要转换对象为XXXEvents_Event类型,再注册相应的事件。下面的代码显示 有关Excel WorkbookActivate 事件的例子。

    ((Excel.WorkbookEvents_Event)(Globals.ThisWorkbook.InnerObject)).Activate += new Excel.WorkbookEvents_ActivateEventHandler(ThisWorkbook_Activate);

    更多的有关VSTOFAQ,请看:
    http://social.msdn.microsoft.com/Forums/zh-CN/vstudiozhchs/thread/ed10f3de-40bb-4f16-81f9-25ace1f152ba


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年2月28日 8:53