如何从WordEditor对象(在Outlook2010中)获取所选文本并将其复制到另一个窗体
本文关键字:文本 复制 窗体 另一个 获取 对象 WordEditor Outlook2010 | 更新日期: 2023-09-27 18:20:30
当我搜索时,我想将所选文本从WordEditor(Outlook电子邮件正文)复制到另一个表单,我发现这部分代码要使用Microsoft.Office.Interop.Word.Document复制到新的Word文档
Outlook.MailItem mailItem;
Outlook.Inspector inspector = mailItem.GetInspector;
// Obtain the Word.Document object from the Inspector object
Word.Document document = (Word.Document)inspector.WordEditor;
// Copy the selected objects
document.Application.Selection.Copy();
我总是收到mailItem.GetInspector部分的错误(对象引用未设置为对象实例)
您需要从Application
对象请求活动检查器。Globals.ThisAddIn.Application.ActiveInspector()
将为您提供当前活动的检查器引用,然后您可以请求CurrentItem
,并在项目为MailItem
类型时将其转换为MailItem
引用(也可以是CalendarItem、TaskItem、NoteItem等)。
对于初学者来说,您没有正确使用OutLook.MailItem。。使用这样的东西作为测试,并利用它,根据您的用例进行更改
public void ShowEmail(string To, string Subject, string Body)
{
Outlook.Application myOutlook = new Outlook.Application();
Outlook.NameSpace myNamespace = myOutlook.GetNamespace("MAPI");
myNamespace.Logon(null, null, null, null);
Outlook.MAPIFolder outbox = myNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox);
Outlook.MailItem mail = (Outlook.MailItem)outbox.Items.Add(Outlook.OlItemType.olMailItem);
mail.Recipients.Add(To);
mail.Subject = Subject;
mail.Body = Body;
mail.GetInspector.Activate();
}
Go ahead and test it, create a button on your form and in the Click event handler:
private void button1_Click(object sender, EventArgs e)
{
ShowEmail("youremailOutlookAddress.com", "Hello!", "Hey here's a test Email!");
}
OutLookMailItem如何使用Outlook
将MailItem对象设置为"objExplorer.Selection[1]as Microsoft.Office.Interop.Outlook.MailItem;",其中objExplore=AddIn名称。Globals.ThisAddIn.Application.ActiveExplorer();