【问题标题】:Opening Custom Form Region from an Outlook COM AddIn Ribbon Button Click从 Outlook COM 加载项功能区按钮打开自定义表单区域单击
【发布时间】:2013-11-19 16:53:33
【问题描述】:

如何从功能区按钮单击事件激活我的自定义类表单区域?本质上,执行与 Outlook 主页 -> 新项目 -> 自定义表单 -> 我的表单名称相同的功能。

我开发了一个 COM 插件,向用户展示了一个表单。它是 IPM.Note 类的一个单独的表单区域。但是现在我已经将它分解为“全部替换”并给出了它自己的类名,我不确定如何从功能区类 Button1_Click 事件处理程序中实例化表单。

我很难找到一个代码示例来演示这个细节。

如果这是对项目集合的 Add("IPM.MyClassName") 调用,我不确定如何对其进行编码。

【问题讨论】:

    标签: forms vsto outlook-addin outlook-2010


    【解决方案1】:

    以下代码用于从功能区按钮单击事件创建我的用户表单的实例。

    Public Sub Button1_Click(ByVal control As Office.IRibbonControl)
        Dim oApp As Outlook.Application = Globals.ThisAddIn.Application
        Dim oNs As Outlook.NameSpace = oApp.GetNamespace("MAPI")
        Dim oInbox As Outlook.MAPIFolder = _
            oNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
        Dim oItems As Outlook.Items = oInbox.Items
        Dim oForm As Outlook.MailItem = oItems.Add("IPM.MyMessageClass")
        oForm.Display(False)
    End Sub
    

    【讨论】:

    • 什么是 IPM.MyMessageClass ??我们可以找到我的表单区域类名称的名称
    【解决方案2】:

    这个看起来更干净:

    Public Sub Button1_Click(ByVal control As Office.IRibbonControl)
        Dim Items As Outlook.Items = _
            Globals.ThisAddIn.Application.ActiveExplorer.CurrentFolder.Items
        Dim Item As Object = Items.Add("IPM.MyMessageClass")
        Item.Display()
    End Sub
    

    当您的 FormRegion 并不真正依赖于文件夹时,这个会短几行。

    【讨论】:

    • 什么是 IPM.MyMessageClass ??我们可以找到我的表单区域类名称的名称
    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多