【问题标题】:How to implement a Wrapper class for the Outlook Inspectors correctly如何正确实现 Outlook 检查器的 Wrapper 类
【发布时间】:2021-12-04 07:42:18
【问题描述】:

C#、VSTO、Outlook 2016

我找到了 Connect class。但是当我尝试连接 NewInspector 事件时,我总是遇到 IDE1007 错误。

public class Connect
{
private Outlook.Inspectors inspectors;
private List<OutlookInspector> inspectorWindows;

inspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler(inspectors_NewInspector);

void inspectors_NewInspector(Outlook.Inspector Inspector) {
  // Check to see if this is a new window you don't already track
  OutlookInspector existingWindow = FindOutlookInspector(Inspector);
  if ( existingWindow == null ) {
    AddInspector(Inspector);
  }
}

显然没有找到检查员。我在这里错过了什么?

稍后在 OutlookInspector.FindOutlookInspector 方法中找不到 Window 变量:

private OutlookInspector FindOutlookInspector(object window) {
  foreach ( OutlookInspector inspector in inspectorWindows ) {
    if ( inspector.Window == window ) {
      return inspector;
    }
  }
  return null;
}

【问题讨论】:

    标签: c# vsto outlook-addin


    【解决方案1】:

    当然-inspectors.NewInspector += 行不在任何方法范围内。我怀疑它必须在构造函数内部:

    public Connect(Outlook.Inspectors Inspectors)
    {
        inspectors = Inspectors;
        inspectorWindows = new List<OutlookInspector>();
        inspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler(inspectors_NewInspector);
    }
    

    然后您需要构造Connect 类的实例并将Application.Inspectors 传递给它。

    【讨论】:

    • 哈,是的,现在我明白了。有了这个小提示,事情正在向前发展。谢谢德米特里。
    • 如果帖子回答了您的问题,请将其标记为此类。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多