这个问题与如何从Word 2010 Addin(用C#开发)中获取"KeyPress"事件密切相关?(实际上包括来自该问题答案的示例代码),但这特别是关于在Windows 10中运行的Word 2016的Visual Studio(Professional)2015中进行开发.
我正在尝试检测来自VSTO加载项的Word文档中的文本何时更改.我从中了解到
没有事件驱动的方式来做到这一点.Word在文本更改时根本不发送事件.
我看过两个解决方法:
我试图在如何从Word 2010 Addin(用C#开发)中获取"KeyPress"事件的答案中使用代码?,它似乎观察每个keydown事件,除了那些发送到Word 2016.
这是我正在使用的代码,以便于参考.
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Threading;
using System.Windows.Forms;
namespace KeydownWordAddIn
{
public partial class ThisAddIn
{
private const int WH_KEYBOARD_LL = 13;
private const int WM_KEYDOWN = 0x0100;
private static IntPtr …Run Code Online (Sandbox Code Playgroud) 我有一个简单的Cocoa应用程序(39 KB压缩),它由一个应用程序委托(AppDelegate)和一个NSString类别(以及一个什么都不做的默认窗口)组成.
在它的init方法中,AppDelegate创建一个NSSavePanel.在执行此操作之前和之后,它按NSString类别方法记录由空格和换行符修剪的字符串的长度:stringByTrimmingWhitespace.
该字符串由空格和换行符组成.我的类别方法应修剪所有这些字符,从而产生一个0长度的字符串.
在NSSavePanel创建之前,我的stringByTrimmingWhitespace方法被调用并返回一个0长度的字符串,如预期的那样.在NSSavePanel创建之后,我的stringByTrimmingWhitespace方法似乎没有被调用,并且调用的任何方法都不会修剪换行符.但是,一个NSString完全相同的不同的类别方法stringByTrimmingWhitespaceAndNewlines- 被调用并按预期工作.
我完全不知道是什么导致我stringByTrimmingWhitespace没有被调用或如何修复它(除了重命名它,这就是我所做的).我还担心其他类的其他类别方法可能会被破坏.有谁知道这里发生了什么?