首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Outlook (VSTO) -在range的函数InsertAfter之后,将焦点设置为编辑器

Outlook (VSTO) -在range的函数InsertAfter之后,将焦点设置为编辑器
EN

Stack Overflow用户
提问于 2016-12-13 14:45:45
回答 3查看 357关注 0票数 0

我的outlook插件(FormRegion)按需将文本插入邮件正文(用户单击按钮)--文本由"InsertAfter“函数(Range的函数)插入。单击后,焦点将放在按钮上,因此用户需要在编辑器中单击back才能继续编写。

我怎样才能把焦点放回编辑器呢?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-21 18:21:18

在尝试了所有可能的解决方案之后,我注意到在启动messagebox \ new表单时,以及当邮件关闭时,邮件主体失去了焦点--焦点返回到邮件主体。

因此,我想出了一些肮脏的解决办法--我创建了一个0%不透明度的新表单,在几毫秒后关闭,这样焦点就会立即返回到邮件主体。

很脏,但效果很好。

票数 1
EN

Stack Overflow用户

发布于 2016-12-13 20:55:20

您可以尝试使用Word对象模型中文档类的激活方法。

或者只使用SetFocus函数将键盘焦点设置为指定的窗口。窗口必须附加到调用线程的消息队列。

SetFocus函数向失去键盘焦点的窗口发送WM_KILLFOCUS消息,向接收键盘焦点的窗口发送WM_SETFOCUS消息。它还激活接收焦点的窗口或接收焦点的窗口的父窗口。

票数 0
EN

Stack Overflow用户

发布于 2016-12-18 18:03:57

您需要找到编辑器控件的HWND,并调用SetActiveWindow / SetFocus / ShowCaret Windows函数。事情变得更有趣,如果你没有程序(不是在你的情况下)。

如果使用赎罪 (我是它的作者)是一个选项,那么它将公开SafeInspector对象和SafeInspector.FocusEditor方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41123891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档