如何检测其他代码设置e.d handled = true

本文关键字:设置 handled true 代码 其他 何检测 检测 | 更新日期: 2023-09-27 17:53:57

使用c#, . net 4, WPF。

我有一个Telerik富文本控件,它正在丢失某些键事件(tab, backspace, delete和箭头键是具体的)。

为了调试的目的,我增加了PreviewKeyDown, KeyDown, CommandExecuting和DocumentContentChanged的处理程序。在DEBUG和RELEASE模式下,该行为在有和没有处理程序的情况下都会出现。

如果我按下上面列出的键以外的键,我将按照上面列出的顺序获得事件。例如,如果我按下'a'键,我得到PreviewKeyDown, KeyDown, CommandExecuting和DocumentContentChanged。

如果我按下右箭头键,我得到PreviewKeyDown而没有其他事件触发。

我怀疑有一些在消息链中的某个点捕获KeyDown事件,然后才到达我并设置e.h handled = true。

是否有任何可用的工具,可以让我检测KeyDown事件,看看在什么代码它的e.Handled被修改?我知道我在这里拉伸…

谢谢!

rjsjr

如何检测其他代码设置e.d handled = true

您可以使用Snoop。它可以告诉您,哪个Element set处理= true。如果你需要处理这些事件,你可以使用EventManager.RegisterClassHandler()。