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

本文关键字:数字 IntegerUpDown 何使 xctk | 更新日期: 2023-09-27 18:14:46

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

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

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

您可以使用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;
    }
}