0

我的 Windows 窗体应用程序具有 IMessageFilter 功能。它似乎可以工作,只是它捕获了用于输入文本框的关键事件。

有没有办法解决这个问题?

4

1 回答 1

3

当您实现 IMessageFilter 并调用 Application.AddMessageFilter() 时,您会看到您创建的每个表单上每个控件的所有排队输入消息。这完全是使用界面的重点。您可以按照方法名称的建议进行过滤,PreFilterMessage() 方法在 Message.HWnd 参数中提供控件的窗口句柄。您可以将其与特定控件的 Handle 属性进行比较。或者,您可以使用 Control.FromHandle() 来获取对将要获取消息的控件的引用。从方法返回以防止消息得到进一步处理。false

于 2012-06-06T17:41:13.763 回答