我正在为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正文中,以便用户可以填写模板。