【问题标题】:How to get pressed character from KeyDown event windows phone如何从 KeyDown 事件 windows phone 中获取按下的字符
【发布时间】:2012-10-22 19:58:48
【问题描述】:

我正在开发一个 Windows Phone 应用程序。我想获取用户按下的键的值。我想检查它是否是数字或任何其他字母或特殊字符。因为我的文本框用于输入货币。所以我需要防止用户输入字母或任何特殊字符。只允许输入数字。

【问题讨论】:

    标签: silverlight windows-phone-7 xaml windows-phone


    【解决方案1】:

    这就是我通常拒绝击键的方式

    private void TextBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.D1)
        {
            // reject this key and do not show in textbox
            e.Handled = true;
        }
    }
    

    编辑:请参阅 How to create a numeric textbox in Silverlight? 了解更全面的实施。

    【讨论】:

    • 好的。但在我的情况下,我只能接受数字键,即 0 到 9。所以我需要检查键盘上每个其他键的条件吗?
    • 有很多边缘情况需要考虑,请参阅stackoverflow.com/questions/268207/… 了解更多信息。
    【解决方案2】:

    keydown 事件处理程序:

    KeyEventArgs e

    e.Key是枚举类型Key,可以通过这个参数获取字符枚举

    【讨论】:

    • 如何获取当前按下的键值? (如果用户按下键 A,那么我需要字符 A)。
    • msdn.microsoft.com/en-us/library/… 返回枚举。您可以在枚举中找到键 A 的值。
    【解决方案3】:

    要限制用户只能输入数字,请将inputscope 设置为数字。有关详细信息,请参阅此:http://msdn.microsoft.com/en-us/library/windowsphone/develop/gg521152(v=vs.92).aspx

    【讨论】:

    • 例如,用户可能仍然有一个硬件键盘。
    • 你测试了吗?我个人没有测试过硬件键盘。请测试并告诉我
    • 您可以使用模拟器进行测试,聚焦文本框并按计算机键盘上的 PageUp 键将其设置为硬件键盘仿真,您将能够使用计算机键盘进行输入。我现在手头没有带有物理键盘的设备。
    • 嗯正确。它接受所有字符。我猜是一个 windows phone 错误
    猜你喜欢
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    相关资源
    最近更新 更多