5

我是 Outlook 插件编程的新手,不确定这是否可行:

我想显示一个弹出表单(或选择),并在用户单击发送时要求用户输入。基本上,每当他们发送电子邮件(新邮件或回复邮件)时,都会要求他们在下拉框中选择一个值(最好从 SQL 数据库中列出项目)。根据他们的选择,一条短信将附加到邮件的主题中。

我做了我的研究,看起来我应该使用表单区域,但我不确定当用户单击发送时如何显示弹出/额外表单。此外,看起来表单区域可用于扩展/替换当前的 VIEW 邮件表单,但我可以将它用于创建新表单吗?

感谢大家的时间。

4

1 回答 1

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;
    }
}
于 2009-12-09T08:29:15.320 回答