美文网首页
『WPF』TextBox元素过滤键盘输入

『WPF』TextBox元素过滤键盘输入

作者: ToBinary | 来源:发表于2019-04-06 23:59 被阅读0次

    本文最后更新于 2019年 4月 20号 下午 1点 54分,并同步发布于 :


    在编写WPF桌面应用程序时, 可能需要限制TextBox(输入框)只能输入数字或只能英文字符之类的情况


    首先, WPF中有关键盘输入的事件有 :

    • KeyDownKeyUp事件(冒泡路由事件)

      这两个事件会被TextBox元素挂起

    • PreviewKeyDownPreviewKeyUp事件(隧道路由事件)

      当按键弹起时才会触发PreviewKeyUp事件(这时内容已经输入到TextBox元素中)

    • TextInput事件(冒泡路由事件)

      此事件会被TextBox元素挂起

    • PreviewTextInput事件(隧道路由事件)
    • TextBox类新增的TextChanged事件(普通事件)

      TextBox的内容改变时才会触发此事件, 这时内容已经输入到TextBox元素中

    现在可用的事件有: PreviewKeyDownPreviewTextInput。(事件触发顺序: PreviewKeyDown >>> PreviewTextInput)
    PreviewTextInput事件的参数提供了Text属性, 可以在发生此事件时进行验证输入。比较方便, 也不用编写更低级的按键判断。


    示例 (限制只能输入数字):

    将事件的Handled属性设置为ture, 阻止事件继续往下传递

    但是! 当按下空格键时, 会直接绕过PreviewTextInput事件 !

    所以需要在PreviewKeyDown事件中阻止Space(空格键)的输入。
    示例代码 :


    ---END---

    相关文章

      网友评论

          本文标题:『WPF』TextBox元素过滤键盘输入

          本文链接:https://www.haomeiwen.com/subject/vczdiqtx.html