如何防止在 DoubleUpDown 中的数字之间使用空格键



我在屏幕中使用了DoubleUpDown控件。我覆盖了.cs文件中的OnKeyPress,以防止输入任何非数字键。我不能在数字前面按空格键。但是我仍然可以在数字之间输入空格键,并且它不会转到我实现的覆盖方法。

我还可以选择控件中的所有数字,然后按空格键。

如何预防?

以下是我的覆盖方法:

    protected override void OnKeyDown(KeyEventArgs e)
    {
        if ("OemPeriodDecimal".Contains(e.Key.ToString()) && DoubleUpDown.Text.Contains("."))
        {
            e.Handled = true;
        }
        else
        {
            e.Handled = !("D1D2D3D4D5D6D7D8D9D0OemPeriodDecimalNumPad0NumPad1NumPad2NumPad3NumPad4NumPad5NumPad6NumPad7NumPad8NumPad9".Contains(e.Key.ToString()));
        }
    }

我找到了解决方案。

它必须使用OnPreviewKeyDown。

    protected override void OnPreviewKeyDown(KeyEventArgs e)
    {
        if ("OemPeriodDecimal".Contains(e.Key.ToString()) && DoubleUpDown.Text.Contains("."))
        {
            e.Handled = true;
        }
        else
        {
            e.Handled = !("D1D2D3D4D5D6D7D8D9D0OemPeriodDecimalNumPad0NumPad1NumPad2NumPad3NumPad4NumPad5NumPad6NumPad7NumPad8NumPad9".Contains(e.Key.ToString()));
        }
    }

相关内容

最新更新