如何使用自定义功能区按钮将带格式的文本插入MeetingItem对象?

时间:2019-01-11 23:26:46

标签: c# vsto ribbon outlook-2016

问题摘要

我正在为Outlook 2016创建一个VSTO插件。我的目标是在功能区中有一个按钮,单击该按钮时,会将格式化的文本模板插入MeetingtItem对象主体。仅当用户创建新的MeetingItem时,该按钮才可见。

该模板将用于将会议议程插入MeetingItem对象主体。这是为了鼓励用户在会议邀请中插入议程,以提高工作效率并消除不必要的会议。

背景和我尝试过的东西

我已在Visual Studio 2017中使用Outlook 2013和2016 VSTO加载项模板创建了VSTO项目。此模板在名为ThisAddIn的公共部分类中提供了两个功能。这些函数称为ThisAddIn_Startup和ThisAddIn_Shutdown。

使用键盘快捷键Shift + Ctrl + A,我使用可视设计器创建了一个新的Ribbon项目。在视觉设计器内部,我单击了为我生成的tab1项。我将其标签字段设置为Meeting,将其ControlId字段设置为TabAppointment。这样做是使功能区按钮仅出现在MeetingItem中。

然后,我单击在视觉设计器中生成的group1项目,并将其标签设置为Agenda。在该组中,我添加了一个按钮。该按钮的标签为“插入议程”。

此后,我将功能区导出到xml。在按钮标记中,我添加了onAction属性并将其值设置为DisplayMessageBox。这是我用于测试的回调函数的名称。目的是在屏幕上显示“ Hello World”消息框。

这是我被困的时候,我不确定下一步该怎么做。

代码

在Ribbon1.cs类的内部,我添加了DisplayMessageBox函数。下面,我显示此文件的第62-65行。此文件中的其余代码由Visual Studio生成。

public void DisplayMessageBox(Office.IRibbonControl control)
{
    MessageBox.Show("Hello World");
}

在ThisAddIn.cs类的内部,我添加了以下函数。

 protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    // Return the Ribbon that we created.
    return new Ribbon1()
}

当前,功能区按预期在MeetingItem内部渲染。我创建的“插入议程”按钮已连接到DisplayMessageBox函数。

展望未来,我想重命名DisplayMessageBox函数,以便它准确地描述我想要执行的操作。例如InsertAgenda()。此功能应将格式化的文本模板插入MeetingItem正文中,以便用户可以填写模板。

0 个答案:

没有答案