NumericUpDown:接受逗号和点作为小数分隔符

T30*_*T30 6 c# decimal numericupdown

有一种方法可以强制c#NumericUpDown接受逗号和点,以分隔十进制值吗?

我已经定制了一个文本框来实现它(实际上用逗号代替点),但我很惊讶没有其他办法......

这个问题解释了如何更改分隔符,但我想同时使用它们!

Nic*_*s R 12

NumericUpDown控件使用操作系统的区域性来使用逗号或点作为小数分隔符.

如果您希望能够处理两个分隔符并将它们视为小数分隔符(即:不是千分隔符),则可以使用验证或手动事件处理,例如:

private void numericUpDown1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar.Equals('.') || e.KeyChar.Equals(','))
        {
            e.KeyChar = ((System.Globalization.CultureInfo)System.Globalization.CultureInfo.CurrentCulture).NumberFormat.NumberDecimalSeparator.ToCharArray()[0];
        }
    }
Run Code Online (Sandbox Code Playgroud)

在此示例中,您将使用当前区域性的NumericDecimalSeparator替换每个点和逗号