如何处理Silverlight 3 TextBox中的KeyDown和KeyUp事件

时间:2010-04-20 20:10:07

标签: silverlight silverlight-3.0

我将处理程序附加到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事件处理程序吗?

感谢。

2 个答案:

答案 0 :(得分:0)

我认为您需要查看CheckForUserEnteredText功能。当然,单独发布的代码没有理由让KeyUp无法触发,而且在我的测试中也是如此。

也许CheckForUserEnteredText会做些什么来阻止它?您似乎同时拥有一个名为MasterTextBox的公共字段/属性和一个名为_masterTextBox的公共字段/属性,您是否需要两者?可能是KeyUp正在解雇,但UpdateText没有按照你的期望做到吗?列表可以继续,底线是您发布的代码没有问题。

答案 1 :(得分:0)

事实证明问题是我在keydown方法中设置了一个断点。显然,当你设置一个断点时,它会错过keyup事件。