在发送电子邮件时使用c#通过vsto加载项在Office 2007中调用拼写检查

时间:2010-01-11 19:19:47

标签: c# outlook

我添加了两个按钮,用于发送和复制以及将Outlook中的电子邮件发送和移动到位于Sharepoint中的文档管理系统。我有两个按钮工作,但未调用outlook中的自动拼写检查。有没有办法在以编程方式发送电子邮件之前调用outlooks 2007拼写检查。

这是一个代码段......

enter code here

void Application_ItemContextMenuDisplay(Microsoft.Office.Core.CommandBar CommandBar, Microsoft.Office.Interop.Outlook.Selection Selection)
    {
      try
        {
        CommandBar.Controls[1].BeginGroup = true; // add seperator before first menu
            if (Selection.Count == 1)
            {
                _mailItem = Selection[1] as Outlook.MailItem;

                if (_mailItem != null)
                {
          Office.CommandBarButton cmdButtonCopy = (Office.CommandBarButton)CommandBar.Controls.Add(Office.MsoControlType.msoControlButton, 1, Missing.Value, 1, Missing.Value);
                    cmdButtonCopy.Caption = "&Copy to DMS";
                    cmdButtonCopy.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(cmdButtonCopy_Click);

                    Office.CommandBarButton cmdButtonMove = (Office.CommandBarButton)CommandBar.Controls.Add(Office.MsoControlType.msoControlButton, Missing.Value, Missing.Value, 2, Missing.Value);
                    cmdButtonMove.Caption = "&Move to DMS";
                    cmdButtonMove.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(cmdButtonMove_Click);                           


                }
            }
        }
        catch (Exception ex)
        {
            ExceptionService.Instance.Handle(ex.Message, ex);
        }
    }

    void cmdButtonCopy_Click(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)
    {
        try
        { 

           **// would  like to invoke spell check here......**
           Outlook.
            Utils.SendToDMS(_mailItem, false);





        }
        catch (Exception ex)
        {
            ExceptionService.Instance.Handle(ex.Message, ex);
        }
    }

2 个答案:

答案 0 :(得分:0)

我认为你不能这样做。我知道强制进行拼写检查而不是通过事件发送项目的唯一方法是在工具栏上的拼写检查按钮上执行。

马库斯

答案 1 :(得分:0)

我找到的方法是以编程方式按Alt + S,这与单击发送按钮相同

mailItem.GetInspector.Activate();
System.Windows.Forms.SendKeys.SendWait("%S");