【问题标题】:set cursor position in Outlook AddIn using word editor range.select() new mail使用文字编辑器 range.select() 新邮件在 Outlook 插件中设置光标位置
【发布时间】:2016-07-25 11:51:23
【问题描述】:

我的代码:

 public void inspectors_NewInspector(Inspector _Inspector)
    {
        try
        { 
            if (_Inspector.CurrentItem is MailItem)
            {
                MailItem myMailItem = (MailItem)_Inspector.CurrentItem;
                myMailItem.HTMLBody = "<html><table><tr><td>cursor</td></tr></table></html>";
                Inspector insp = myMailItem.GetInspector;
                insp.Activate();
                Microsoft.Office.Interop.Word.Find uiFind = insp.WordEditor.Range().Find;
                uiFind.Text = "cursor";
                while (uiFind.Execute())
                {
                    Microsoft.Office.Interop.Word.Range rng = uiFind.Parent;
                    rng.Select();
                    rng.Text = "";
                    break;
                }
            }
        }
        catch (System.Exception ex)
        {

        }
    }

它正在为回复和转发来设置光标位置,但是在选择新邮件时,我会在下面的屏幕截图时获得异常。有人对摆脱这个错误有什么建议吗?

【问题讨论】:

  • 你什么时候调用上面的代码?哪个活动?
  • 可能那个时候inspector不存在,因为错误似乎发生在myMailItem.GetInspector。我希望当您回复/转发时,它不会打开新的检查器窗口,而只是在 Outlook Explorer 主窗口中创建新电子邮件。您可以在问题中包含整个方法代码吗?
  • 如果 Inspector 可用作方法的参数,为什么还要使用 GetInspector 再次获取 Inspector?
  • 我也试过了还是报错......

标签: c# vba outlook outlook-addin


【解决方案1】:

在调用NewIsnpector 时,Word 编辑器尚未完全初始化。等待Inspector.Activate 事件触发。请记住,它会触发多次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2016-08-01
    • 1970-01-01
    • 2022-07-14
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多