WPF设置文本框(TextBox)只能输入数字

前言

前台UI设置

1
2
3
4
5
6
7
<TextBox 
Width="100"
Height="30"
PreviewTextInput="TextBox_PreviewTextInput"
PreviewKeyDown="TextBox_PreviewKeyDown"
InputMethod.IsInputMethodEnabled="False"
/>

其中
InputMethod.IsInputMethodEnabled="False"禁用输入法
后台代码限定只能输入数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void TextBox_PreviewTextInput
(
object sender,
TextCompositionEventArgs e
)
{
if (!short.TryParse(
e.Text,
out short _
))
e.Handled = true;
}

private void TextBox_PreviewKeyDown
(
object sender,
KeyEventArgs e
)
{
if (e.Key == Key.Space)
e.Handled = true;
}