我注意到当一个窗口处理由其中的文本框引发的KeyDown事件并将事件Handled标志设置为true时,文本框会忽略按下的键并不将其添加到其内容中。
根据我的理解,PreviewKeyDown事件首先从窗口向TextBox进行隧道传输,然后KeyDown事件从TextBox向窗口冒泡。当窗口的事件处理程序设置Handled事件时,事件不再由TextBox处理,但我确实看到它产生了影响,按下的键没有添加到TextBox中。
有人可以解释一下这是如何工作的吗?
(这是一个通用问题,但在我看到我们正在使用的第三方控件中出现了类似的行为后提出,这给我带来了问题,因为我希望控件处理事件但停止它向上冒泡。)
根据我的理解,PreviewKeyDown事件首先从窗口向TextBox进行隧道传输,然后KeyDown事件从TextBox向窗口冒泡。当窗口的事件处理程序设置Handled事件时,事件不再由TextBox处理,但我确实看到它产生了影响,按下的键没有添加到TextBox中。
有人可以解释一下这是如何工作的吗?
(这是一个通用问题,但在我看到我们正在使用的第三方控件中出现了类似的行为后提出,这给我带来了问题,因为我希望控件处理事件但停止它向上冒泡。)