如何从C#开发的Word 2010 Addin中"捕获"KeyPress事件?
注意:我不是在寻找像钩子这样的"复杂"解决方案,而是从对象模型中寻找漂亮而整洁的.NET.
我"在我手中"的应用程序对象是:
Microsoft.Office.Interop.Word.Application
最好的祝福
我正在开发一个实时语言分析工具,需要使用VSTO加载项(使用C#编写的.NET4.6.1编写,突出显示单词以引起Word 2016中作者的注意).想一想语法/拼写检查,它会在单词下面添加一条波浪线,以显示该单词具有语法错误或拼写错误.我为我自己定义的一些规则添加了一个类似的功能.
我搜索周围添加波浪线,并无意中发现了Font.Underline和Font.UnderlineColor.我把它设置在一个单词的范围内,它似乎提供了我追随的视觉效果.但是有一个问题.我添加或加下划线颜色的每个下划线都会向撤消堆栈添加撤消操作.
我不希望这种情况发生,或者我想要一种方法来弹出我刚才在堆栈代码中执行的操作.目的是让用户能够使用CTRL + Z删除他更改的文本,而不会影响我的语言分析结果.
我该怎么做呢?
我正在开发一个MS-Word插件,我的代码必须能够访问用户通过键盘输入的字母.
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
this.SelectionChange += new SelectionEventHandler(ThisDocument_SelectionChange);
}
void ThisDocument_SelectionChange(object sender, SelectionEventArgs e)
{
MessageBox.Show(e.Selection.Text);
}
Run Code Online (Sandbox Code Playgroud)
我认为SelectionChange事件可以给我文本,但事件不是在按键时引发的,有没有办法在按键时触发事件?此外,如果有更简单的方法或提供功能的开源项目,那将是受欢迎的.
我正在尝试开发一个 office 插件,并且需要使用 C# 在 MS-Word 上捕获 keydown 事件。有人可以给我一个关于如何做到这一点的例子吗?