我将处理程序附加到Silverlight 3 TextBox的KeyDown和KeyUp事件,如下所示:
_masterTextBox.KeyDown += (s, args) =>
{
CheckForUserEnteredText(MasterTextBox.Text);
args.Handled = false;
};
_masterTextBox.KeyUp += (s, args) => { UpdateText(MasterTextBox.Text); };
当我注释掉KeyDown处理程序时,KeyUp会捕获该事件,否则只会触发KeyDown处理程序。
有人可以解释为什么在KeyDown处理程序之后没有触发KeyUp事件处理程序吗?
感谢。
答案 0 :(得分:0)
我认为您需要查看CheckForUserEnteredText
功能。当然,单独发布的代码没有理由让KeyUp无法触发,而且在我的测试中也是如此。
也许CheckForUserEnteredText
会做些什么来阻止它?您似乎同时拥有一个名为MasterTextBox
的公共字段/属性和一个名为_masterTextBox
的公共字段/属性,您是否需要两者?可能是KeyUp正在解雇,但UpdateText没有按照你的期望做到吗?列表可以继续,底线是您发布的代码没有问题。
答案 1 :(得分:0)
事实证明问题是我在keydown方法中设置了一个断点。显然,当你设置一个断点时,它会错过keyup事件。