【问题标题】:Outlook Addin FormRegion closing event or similar?Outlook Addin FormRegion 关闭事件或类似事件?
【发布时间】:2012-07-09 16:28:09
【问题描述】:

我正在尝试在检查员关闭之前更新一些 Outlook 约会项目数据(具体的主题和位置)。

this thread发现结束事件顺序是:

  1. 检查基础项目的状态以查看它是否需要保存
  2. 如果是,则写入
  3. 然后调用表单区域关闭处理程序

我需要在第 1 步执行之前运行一些代码。

我所知道的关于这个区域的唯一事件是 OutlookFormRegion.Close,但这已经太晚了,第 1 步和第 2 步已经过去了。

formregion(带有 C# 用户控件的 C# 表单)本身也不会在此修改检查之前触发事件。

本质上,我正在寻找 closing 事件而不是 closed

【问题讨论】:

    标签: c# outlook vsto outlook-addin


    【解决方案1】:

    如果您只想更新约会数据,那么为什么不更新主题等并从关闭处理程序对对象执行 Save() 呢?这意味着它可以写两次,但至少你把你的信息放在正确的地方。

    【讨论】:

    • 我将我的示例仅限于该数据,但实际上约会还包含其他字段(存储在自定义属性中序列化的 xml)我需要关闭事件处理程序的主要问题是如果您现在编辑文本字段然后关闭检查器,则在关闭事件之前不会触发单个事件。 (没有离开,没有验证,没有 onvalidated,没有inspector.pagechange)文本字段(如果数据绑定)也不会更新底层数据源。所以现在我可以打开约会,去我的自定义表单,修改一些然后关闭,什么都不会发生。
    • 此外,不会询问用户是否要以这种方式保存更改。在关闭的事件中,我可以询问用户是否要保存他的更改,但我只能提供是和否,而不是是,否和取消。我不能像标准取消行为那样让检查器保持打开状态。
    • 也许我在你的例子中遗漏了一些东西。在我的应用程序中,我在预约检查员中有一个表单区域。我处理 onFormRegionClosed 事件然后写入我的数据。那时您还可以更新约会信息并调用 save()。
    猜你喜欢
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多