【问题标题】:Outlook addin & custom form region: how do they communicate?Outlook 插件和自定义表单区域:它们如何通信?
【发布时间】:2011-02-08 01:54:03
【问题描述】:

我的 Outlook 插件在同一个命名空间中有两个部分类。一个用于自定义表单区域,一个用于插件本身。如何让这两个类共享数据?具体来说,ThisAddIn需要从FormRegion1获取一些信息。

// ThisAddIn.cs
namespace My_AddIn {
    public partial class ThisAddIn {

// FormRegion1.cs
namespace My_AddIn {
    partial class FormRegion1 {

我想我的问题实际上是如何从 ThisAddIn 获取 FormRegion1 的检查器。我在 ThisAddIn 类的 Inspectors_NewInspector 事件处理程序方法中尝试过这样的事情:

Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem;
if (mailItem != null) {
    Outlook.Pages page = mailItem.GetInspector.ModifiedFormPages as Outlook.Pages;
    // previous line causes unhandled COMException error ("the operation failed")

Outlook.Pages page = Application.GetInspectors[mailItem].ModifiedFormPages["FormRegion1"];
// previous line causes unhandled COMException error ("type mismatch")

有没有人了解访问 FormRegion1 的正确方法?

【问题讨论】:

    标签: c# class outlook add-in


    【解决方案1】:

    我找不到一个事件,它的处理程序可以让 ThisAddIn 获得对 FormRegion1 的引用(我发现在 FormRegion1 实例化之前触发的所有内容)。我最终使用了一个单例来为 ThisAddIn 提供对每个 FormRegion1 实例的引用。

    【讨论】:

    • 您有代码示例吗?我正在尝试同样的事情,但不熟悉写单字。
    • @Larry:我也放弃了这种方法,因为我不想处理协商适当的实例(否则单例只会产生其存储的最新副本;它会在多个窗口上中断) .很好的示例代码:csharpindepth.com/Articles/General/Singleton.aspx
    猜你喜欢
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 2020-06-29
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多