我是Outlook加载项编程的新手,不确定这是否可行:
我想显示弹出窗体(或选择),并在单击“发送”时询问用户输入。基本上,每当他们发送电子邮件(新邮件或回复邮件)时,都会要求他们在下拉框中选择一个值(最好从SQL数据库中列出项目)。 根据他们的选择,文本消息将附加到邮件的主题。
我做了我的研究,看起来我应该使用表单区域,但我不确定如何在用户单击“发送”时显示弹出/额外表单。 此外,表单区域可以用于扩展/替换当前的VIEW邮件表单,但是我可以将它用于创建新表单吗?
感谢大家的时间。
答案 0 :(得分:5)
您可以在ThisAddIn Internal Startup方法中添加Item Send事件处理程序,然后在Item Send Event中调用自定义表单(Windows窗体)。 在下面的示例中,我在发送电子邮件项目之前以及单击“发送”按钮之后将自定义窗体表单作为模式对话框调用。
private void InternalStartup()
{
this.Application.ItemSend += new ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
}
void Application_ItemSend(object Item, ref bool Cancel)
{
if (Item is Microsoft.Office.Interop.Outlook.MailItem)
{
Microsoft.Office.Interop.Outlook.MailItem currentItem = Item as Microsoft.Office.Interop.Outlook.MailItem;
Cancel = true;
Forms frmProject = new ProjectForm();;
DialogResult dlgResult = frmProject.ShowDialog();
if (dlgResult == DialogResult.OK)
System.Windows.Forms.SendKeys.Send("%S"); //If dialog result is OK, save and send the email item
else
Cancel = false;
currentItem.Save();
currentItem = null;
}
}