【问题标题】:VSTO - Outlook event handler in C#VSTO - C# 中的 Outlook 事件处理程序
【发布时间】:2009-05-02 20:39:28
【问题描述】:

我需要为 Outlook 约会项目显示自定义表单而不是默认检查员表单。我想在 C# 中执行此操作。

devx 上有一个很好的教程,但它使用的是 VB,我想使用 C#。因此,我已将代码翻译为 C#,但遇到了一个问题,我需要覆盖 AppointmentItem(称为 mcAI)的 Open 事件处理程序。在上面提到的 tute 中,他们说在 VB 中执行以下操作:

Private Sub tyAI_Open(ByRef Cancel As Boolean) Handles tyAI.Open
    Cancel = True
End Sub

对我来说是这样的:

private void mcAI_Open(out bool Cancel)
{
    Cancel = true;
}

(请注意,我已经尝试过使用和不使用 outref 参数,以及使用/不使用对象作为第一个参数)

但是我们需要在事件中注册这是一个,所以我输入了这个代码:

mcAI.Open += 
    new Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler(mcAI_Open);

但由于出现错误,我无法编译:

No overload for 'mcAI_Open' matches delegate 'Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler'

关于我应该如何为AppointmentItemOpen 事件注册我的函数有什么想法吗?提前致谢。

(顺便说一句,MSDN QA 表明我的代码应该可以工作,但我仍然卡住了。)

【问题讨论】:

    标签: c# .net outlook vsto


    【解决方案1】:

    理论上,这应该可行:

    private void mcAI_Open(ref bool Cancel)
    {
        Cancel = true;
    }
    

    【讨论】:

    • 谢谢,是的,这在实践中也有效!我以为我尝试了一个 ref 参数 - 我猜不是。我使用了一个 out 参数,因为我在文档中找到了类似的东西,但现在找不到它来检查,当然。
    猜你喜欢
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 2022-08-05
    • 2016-09-08
    • 2021-10-24
    相关资源
    最近更新 更多