我需要限制除空格外的所有符号,数字键盘中的0-9,小键盘和逗号中的0-9。我在numpad中处理了除逗号之外的所有内容:
e.Handled = !((e.Key >= Key.D0 && e.Key <= Key.D9) ||
(e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) ||
e.Key == Key.Space || e.Key == Key.OemComma);
numpad中逗号的问题被识别为Decimal
,但Decimal
也是一个点,我应该禁止它。
如何用点和逗号分隔Decimal
?
答案 0 :(得分:0)
您可以使用Key.Decimal
。它是小键盘上的一个键,对应于美国布局上的.
,以及俄语布局上的,
。
e.Handled = !((e.Key >= Key.D0 && e.Key <= Key.D9) ||
(e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) ||
e.Key == Key.Space || e.Key == Key.Decimal);
答案 1 :(得分:0)
根据另一个答案的评论,听起来你要求的是如何确定if (decimal is comma)
。如果是这样,那么这应该有所帮助:
var decimalSeparator = System.Globalization.CultureInfo.CurrentCulture
.NumberFormat.NumberDecimalSeparator.ToString();
e.Handled = !((e.Key >= Key.D0 && e.Key <= Key.D9) ||
(e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) ||
(e.Key == Key.Space) ||
(e.Key == Key.Decimal && decimalSeparator == ","));