我有几个groupBoxes-controls,每个控件都有一个NumericUpDown-control。 NumericUpDowns有一个小的修改 - 它们也可以在十进制的负范围内递减。这是代码:
//Add KeyDown event to the numericUpDown control
numericUpDownGBPC12_angleRange.KeyDown += new KeyEventHandler(numericUpDownNegative);
函数 numericUpDownNegative 的代码如下:
void numericUpDownNegative(object sender, KeyEventArgs e)
{
NumericUpDown temp = (NumericUpDown)sender;
temp.Value -= temp.Increment;
sender = (object)temp;
NumericUpDown temp = (NumericUpDown)sender;
}
我们非常欢迎有关改进上述代码的建议,但是如果可以在NumericUpDown中启用负输入,我会更感兴趣。上面的代码有效,但当我尝试输入负数时,我得到一些奇怪的东西。此行为 不适用于未修改的NumericUpDown。
示例: 假设numericUpDownGBPC12_angleRange的最小值为-70.0000000000 ,最大值为70.0000000000 ,我已根据控件的最小/最大属性参数设置。控件的起始值为0.0000000000。如果我按下向下按钮,我会得到-0.0000000001,-0.0000000002,-0.0000000003等,直到达到-70.0000000000。但是,如果我决定键入-x.xxxxxxxxxx(假设为-24.2398324119),我会得到x-0.0000000000(4-0.0000000000)。因此,不仅我不能输入完整的数字24(在这种情况下,似乎NumericUpDown采用最后输入的数字,这是4),但是在完全消灭之后我得到整个部分,除非它是通过使用的情况设置的案例问题只与点之前的部分有关。因此,只能更改第一个数字(在数字的最左侧)。 : - /
我正在考虑使用textBox-controls但是我作为界面的一部分的数字字段的数量将产生巨大的开销,因为每个textBox的解析(我们都知道很遗憾许多用户喜欢尝试从未打算进行实验的事情;))确保输入一定数量。尽管负面的东西,NumericUpDown还有很好的功能,例如 - 只能输入一个数字,你也可以指定精度,值的范围等。
同样问题是 - NumericUpDown是否可以接受用户的负面输入?
答案 0 :(得分:0)
KeyDown事件中的问题(必须完全删除)和也是我尝试输入的格式。我有','分隔符,而不是'。'在我的Visual Studio中(由于本地化)。所以打字'。'使NumericUpDown变得疯狂。