【问题标题】:How to handle both the KeyDown and KeyUp events in a Silverlight 3 TextBox如何处理 Silverlight 3 TextBox 中的 KeyDown 和 KeyUp 事件
【发布时间】:2010-04-20 20:10:06
【问题描述】:

我将处理程序附加到 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 处理程序。

有人可以解释为什么 KeyUp 事件处理程序没有在 KeyDown 处理程序触发之后触发吗?

谢谢。

【问题讨论】:

    标签: silverlight silverlight-3.0


    【解决方案1】:

    我认为您需要查看您的 CheckForUserEnteredText 函数。当然,仅从发布的代码来看,KeyUp 没有理由不触发,而且在我的测试中也是如此。

    也许CheckForUserEnteredText 做了什么来阻止它?您似乎同时拥有一个名为 MasterTextBox 的公共字段/属性和一个名为 _masterTextBox 的公共字段/属性,您需要两者吗?可能是 KeyUp 正在触发但 UpdateText 没有按照您的预期进行吗?该列表可以继续,最重要的是您发布的代码没有问题。

    【讨论】:

      【解决方案2】:

      原来问题在于我在 keydown 方法中设置了一个断点。显然,当您设置断点时,它会错过 keyup 事件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多