IT分享网

搜索
热搜: 活动 交友 discuz
查看: 715|回复: 0

[知识点] WPF C# VS2013 TextBox控件 限制只能输入数字

[复制链接]
发表于 2017-2-6 20:31:57 | 显示全部楼层 |阅读模式
编码语言:C#
编码平台:VS2013
项目类型:WPF
TextBox控件  PreviewKeyDown事件 后台代码


//按键为: 非 ( 大键盘0~9 || 小键盘 0~9 || 退格键 ) 时不可输入
private void TextBox1_PreviewKeyDown(object sender, KeyEventArgs e)
{
      bool shiftKey = (Keyboard.Modifiers & ModifierKeys.Shift) != 0;//判断shifu键是否按下
    if (shiftKey == true)                  //当按下shift
    {
         e.Handled = true;//不可输入
    }
    else                           //未按shift
    {
    if (!((e.Key >= Key.D0 && e.Key <= Key.D9) || (e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Delete || e.Key == Key.Back || e.Key == Key.Tab || e.Key == Key.Enter))
        {
             e.Handled = true;//不可输入
        }
    }
}



由于TextBox控件 在接收字母输入后会将所有按键识别为输入法处理 "ImeProcessed"  所以还需要将控件屏蔽输入法


XAML代码
<TextBox x:Name="TextBox1" InputMethod.IsInputMethodEnabled="False"/>//屏蔽输入法


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2019-8-18 06:38 , Processed in 0.640559 second(s), 28 queries .

  

QQ|Archiver|手机版|小黑屋|IT分享网 ( 苏ICP备15049123号-2 )  

GMT+8, 2019-8-18 06:38 , Processed in 0.640559 second(s), 28 queries .

Powered by Discuz! X3.2 Designed by 999test.cn

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表