编码语言: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"/>//屏蔽输入法