在我的机器我有FormInitializingFormShowing事件之前发射RibbonLoad 我在VS 2010中创建了一个安装程序包,并安装在装有Outlook 2010的普通 Windows 7 Ultimate上。

该插件没有出现在我的会议请求表上。 因此,我设置了远程调试器,令我惊讶的是, RibbonLoad在上述两个表单事件之前触发。 正在抛出空异常b \\ c RibbonLoad的代码依赖于已经加载的FormRegion 谁能提供任何见解?

===============>>#1 票数:1 已采纳

对于某些Outlook事件,没有定义的顺序- 功能区UI检查器UI是完全不同的组件,尽管它们都显示在同一窗口中。 Outlook运行时可能会以不同顺序触发功能区和检查器事件。 如果需要完成一些初始化FormInitializing同步两个事件( RibbonLoadFormInitializing )是您的工作。 您不能假设顺序将始终相同。

ThisAddIn.StartupThisAddIn.CreateRibbonExtensibilityObject之前ThisAddIn.CreateRibbonExtensibilityObject ,但有时在Outlook触发排序之后,我会注意到相同的行为。 您可以仅使用带有同步锁定的静态变量来确保初始化代码仅触发一次。

这是我用来将Startup事件与RibbonLoad事件同步的示例:

public partial class ThisAddIn
{
  static bool formInitialized = false;
  static readonly object padLock = new Object(); 

   private void ThisAddIn_Startup(object sender, System.EventArgs e)
   {
       lock(padLock) { if (!formInitialized ) { InitializeForm(); } }
       // startup code
    }

   private void InitializeForm() 
   {
      // init code
      formInitialized = true;
   }

   protected override IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        lock(padLock) { if (!formInitialized) InitializeForm(); }
        // Create ribbon UI
    }
}

  ask by jive137 translate from so

未解决问题?本站智能推荐:

1回复

使用PropertyAccessor读取属性后,Outlook邮件项已损坏

我为MS Outlook创建了一个加载项,它仅显示一些电子邮件标题信息。 可从所选电子邮件项目的上下文菜单访问显示标题信息的命令。 在我设置发送电子邮件的传递规则之前,一切都很好。 每封电子邮件都会在发件箱文件夹中保留2分钟,然后再发送出去。 但是,当我选择一个电子邮件项目时,它会变成常
1回复

Outlook 2013检测到加载项缓慢

我开发了一个Addin,它由Login和数据输入与检索功能组成。 数据输入和检索可通过REST URL访问。 Outlook Startup没有任何代码,只检查Outlook版本。 我实现了一个简单的形式,该形式最初显示用户“正在加载消息”,其余逻辑将由线程处理。 因此,我希望一切都能按
1回复

Outlook加载项:创建新的ContactItem

我使用以下代码将某些数据分配给给定MailItem的适当ContactItem(发件人)。 如果Sender.GetContact()返回null,则试图创建一个新的ContactItem。 但这对我来说似乎不起作用。 下次我与该MailItem取得联系时(请参见以下代码),它将返回
1回复

Outlook加载项:从邮件获取联系人

我正在为Outlook 2010做一些外接程序开发,并且试图将ContactItems与电子邮件( MailItem )关联。 我认为MailItem.Links集合应该返回我想要的东西,但是它是空的。 也许我走错了路,但此刻我没主意了。 我有一个Outlook.MailItem ,我
1回复

在光标位置添加内容,Outlook VSTO加载项

我正在为Outlook 2010创建我的第一个加载项,它用于使用按自定义功能区上的按钮时添加到电子邮件正文中的表情符号。 我目前拥有它,因此当按下按钮时,相应的表情符号将添加到电子邮件的末尾。 我的主要问题是,我不想只是在HTMLBody的末尾添加表情符号,而是在光标的当前位置添加表情符
1回复

无法调试Outlook加载项项目

我在Outlook 2010外接程序项目中遇到问题,在对该项目进行首次调试之后,我无法再对其进行调试,它向我显示以下警告: 以下模块是在启用了优化或没有调试信息的情况下构建的:{DLL的路径}要调试此模块,请将其项目构建配置更改为“调试”模式。 若要取消显示此消息,请禁用“如果启动时
1回复

单击自定义按钮后,Outlook事件不会被触发

我正在开发一个Microsoft Outlook加载项,我在加载项选项卡名称OPENISMS中添加了一个按钮。 我可以看到按钮,但是点击该事件不会被触发。 我不知道为什么它以这种方式表现。 请在下面找到添加按钮和附加事件的代码。 任何帮助将受到高度赞赏。 private void Ad
2回复

如何使用预先填充的附件打开Outlook的新邮件窗口

当用户点击我的应用程序中的某个按钮或链接时,我需要打开一个带有预填充附件的新电子邮件窗口。
1回复

新增中 src> 标记到Outlook Mailitem主体在VSTO加载项中不起作用

我有一个用于Outlook的VSTO加载项,它在电子邮件底部附加了一个标签。 这样完成 这很好。 但是,我最近注意到,对于该加载项的某些用户来说,已发送电子邮件的最终HTML实际上看起来像这样 在电子邮件底部,我看到了 据我了解,用户的Outlook可以下载图像并将其
1回复

Outlook 2010是否禁用缓慢启动的添加项?

我知道如果开始时间超过1秒,Outlook 2013和2016会禁用添加项。 Outlook 2010是否具有相同的功能?