如何使xctk:IntegerUpDown仅接受数字?

时间:2016-10-24 19:17:24

标签: c# .net wpf

我试图让xctk:IntegerUpDown只接受数字。说实话,我很惊讶为什么数字控件会接受非数字。如果有人知道这个的实际原因,请告诉我。

所以我试过: FormatStringNParsingNumberStyleInteger但它仍然接受非数字字符,例如字母。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用PreviewKeyDown事件。我添加了一个TextBox的示例,该示例也适用于您的NumericUpDown

XAML:

<TextBox PreviewKeyDown="OnPreviewKeyDown" />

CS:

public void OnPreviewKeyDown(object sender, KeyEventArgs args)
{
    switch (args.Key) {
        case Key.D0: case Key.NumPad0: 
        case Key.D1: case Key.NumPad1: 
        case Key.D2: case Key.NumPad2: 
        case Key.D3: case Key.NumPad3: 
        case Key.D4: case Key.NumPad4: 
        case Key.D5: case Key.NumPad5: 
        case Key.D6: case Key.NumPad6: 
        case Key.D7: case Key.NumPad7: 
        case Key.D8: case Key.NumPad8: 
        case Key.D9: case Key.NumPad9:
            args.Handled = false; 
            break;
        default:
            args.Handled = true;
            break;
    }
}