Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可能由用户进行数字向上向下负输入?_C#_Input_Numericupdown - Fatal编程技术网

C# 是否可能由用户进行数字向上向下负输入?

C# 是否可能由用户进行数字向上向下负输入?,c#,input,numericupdown,C#,Input,Numericupdown,我有几个GroupBox控件,每个控件上都有一个NumericUpDown控件。数字递增有一个小的修改-它们也可以在十进制的负范围内递减。代码如下: //Add KeyDown event to the numericUpDown control numericUpDownGBPC12_angleRange.KeyDown += new KeyEventHandler(numericUpDownNegative); 函数numericUpDownNegative的代码如下: void nume

我有几个GroupBox控件,每个控件上都有一个NumericUpDown控件。数字递增有一个小的修改-它们也可以在十进制的负范围内递减。代码如下:

//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中启用负输入,我更感兴趣。上面的代码是有效的,但是当我尝试输入一个负数时,我得到了一些奇怪的结果。此行为不适用于未修改的数值向上向下

例如: 假设numericUpDownGBPC12_angleRange的最小值为-70.0000000000,而最大值为70.0000000000,这是我通过控件的最小/最大属性参数设置的。控件的起始值为0.0000000000。如果我按下向下按钮,我得到相应的-0.0000000001,-0.0000000002,-0.0000000003等,直到我达到-70.0000000000。但是,如果我决定键入-x.xxxxxxxxx(比如-24.2398324119),我会得到x-0.0000000000(4-0.0000000000)。因此,我不仅不能输入完整的数字24(在本例中,似乎NumericUpDown采用了最后一个键入的数字,即4),而且我得到了点后的整个部分完全消除,除非它是通过使用case设置的,在这种情况下,问题只在于点前的部分。因此,只能更改第一个数字(数字最左边):-/

我曾考虑使用textBox控件,但由于解析每个textBox,我在界面中拥有的数字字段的数量将产生巨大的开销(我们都知道,不幸的是,许多用户喜欢尝试从未尝试过的东西;))以确保输入了某个数字。尽管有负面影响,NumericUpDown还是有很好的功能,例如-只能输入一个数字,您还可以指定精度、值的范围等


因此,问题再次是-NumericUpDown是否可能接受用户的负输入?

问题在于按键事件(必须完全删除)也是以我试图作为数字输入的格式。我的VisualStudio中有“,”分隔符,而不是“.”(由于本地化)。所以键入“.”使数字上下变得疯狂。

您是否尝试过简单地将
最小值设置为-70,将
最大值设置为70?这样你就不需要这个活动了。我当然已经设置好了(我将把这个添加到我的问题的描述中,因为我只写了我的范围)。问题是NumericUpDown的“正常”行为根本不处理负值。正如你所看到的,你需要修改才能进入小数点的负范围。我真的不能用标准的数字上下控制来解决你的问题。恐怕您需要显示该控件的所有属性..net2.0我已经尝试过了,您是否删除了
keydown
事件处理程序?删除它,然后再试一次。@rbaleksandar我很高兴您的问题得到了解决。请不要在标题中键入
[solved]
。相反,用你的答案回答这个问题。祝你今天愉快:)