C# numericUpDown控件问题

求大神指点
numericUpDown控件问题,如下:
当value最大时点Up,value就变为最小值,
当value最小时点Down,value就变为最大值,
我本想通过鼠标的相对坐标来判断点的是哪一个按钮,但是行不通,值为22时点击后就成了0,值为0时点击后就成了22,代码如下,

C# code?

1
2
3
4
5
6
7
8
9
10
11
12
13
14

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
int i = MousePosition.Y - this.Location.Y;

if (numericUpDown1.Value == 23 && i < 165)
{
numericUpDown1.Value = 0;
}
if (numericUpDown1.Value == 0 && i > 165)
{
numericUpDown1.Value = 23;
}
Trace.WriteLine(numericUpDown1.Value);
}
我自己搞定了!最大值改为24,最小值改为-1,坐标是用来判断点了“加”还是"减"
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
int i = MousePosition.Y - this.Location.Y;
if (numericUpDown1.Value == 24 && i < 164)
{
numericUpDown1.Value = 0;
}
if (numericUpDown1.Value == -1 && i >= 164)
{
numericUpDown1.Value = 23;
}
}

这么麻烦?直接读取最新的值,如果是最大就变成最小,最小再点就变成最大就可以了。要是最大最小也必须存在,可以赋值给一个全局变量。做个比较就行了。追问

难道最大值时点"减"也变最小值???无语!!!

追答

没看懂你的需求,但是所有操作都可以针对值进行判断。

追问

但是怎么知道点的是"加"还是"减"???比如:
if ( Upbutton_click() == true && Value == Maxvalue)
{
Value = Minvalue;

}
if ( Downbutton_click() == true && Value == Minvalue)
{
Value = Maxvalue;

}

追答

你就是要最大值点时候点up的时候变成最小值;最小值的时候点down的时候变成最大值?

追问

嗯,是的,又有一种方法了,最大值改为24,最小值改为-1,
if (this.numericUpDown1.Value == 24)
this.numericUpDown1.Value = 0;
else if (this.numericUpDown1.Value == -1)
this.numericUpDown1.Value = 23;

追答

这不就是我说的方法么?直接对值进行判断。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-07-31
应该有一种专门显示Time的控件吧,好像不是NumericDropDown这个控件。
希望能解决您的问题。
第2个回答  2014-07-31
没明白坐标和值有何关系?追问

我自己搞定了!坐标是用来判断点了“加”还是减,看上面

追答

你这代码明显很不稳定,稍稍把你的numericUpDown1在设计界面挪动一下位置或者改变一下尺寸就运行不起了。此控件本身应该有上翻或者下翻的事件,哪里需要你用坐标来判断!

追问

我前天更始学C#,这是我目前想到的可实现方法

c#中numreicupdown 控件怎么禁止输入小数
1打开窗体设计器并选择 NumericUpDown 控件。2在属性窗口中找到 DecimalPlaces 属性,将其设置为 0。3在代码中,可以使用以下代码来设置 NumericUpDown 控件的 DecimalPlaces 属性:numericUpDown1.DecimalPlaces = 0;这将禁止在 NumericUpDown 控件中输入小数,并只允许输入整数值。

C#中numericUpDown控件问题
楼上说的对。你的number定义成string了,然后用的时候做了装箱操作,decimal,如果实际数据中出来非数值类型的,那么肯定报错。或者是数值类型的源数据,但是长度超过了decimal 了,也会报错。

请教大侠如何在c#中将NumericUpDown控件在手动输入时、只允许输入一位...
NumericUpDown控件本身就支持控制小数位数的,NumericUpDown控件有个属性,叫 DecimalPlaces,是控制小数位数的,默认是0,你设置为1,就是一位小数了。

C#中控件的numericUpDown的初始值怎么设置为0??如果改属性中的minimum=...
回答:从工具箱中拖到Form中时,就默认显示是0的啊?!

c# 请教大神关于 numericUpDown的问题
int displayApple;private void numPie_ValueChanged(object sender, EventArgs e){ displayApple = totalApple - CalcRemainApple();\/\/所有的numeric事件都这样写 } private int CalcRemainApple(){ \/\/?代表那个东西需要消耗的apple数量 return totalApple - numPie.Value*10 - numCider.Value *? -...

c# numericupdown 怎么点增加的时候 总和减少一
方法1, (如果太傻了请笑过,我不熟悉WNFORM编程)numericUpDown1.Increment 设置成0 把增加减少写在 numericUpDown1_MouseDown 事件中,X,Y 值仅仅是个例子随便写的.private void numericUpDown1_MouseDown(object sender, MouseEventArgs e){ var p = e.Location;int x = e.Location.X;int y = ...

C#中怎么设置numericUpDown控件让其只能加大不能减小
添加一个隐藏的文本框用来保存numericUpDown的当前值,在numericUpDown的changed事件中比较文本框中的值和numericUpDown的新值,如果文本框中的值大,则把文本框中的值给numericUpDown,也就是恢复到改变之前,如果numericUpDown的值大就把numericUpDown的值赋到文本框里保存起来下次判断用。

C# numeric updown事件
Value要等到回车确认或numericUpDown控件失去输入焦点时改变,此时触发numericUpDown的ValueChanged事件。

c# numericupdown设置最大值为100,如果输入201会直接弹出输入错误的对话...
((Control)numericUpDown1).TextChanged+=new EventHandler(numericUpDown1_TextChanged);private void numericUpDown1_TextChanged(object sender, EventArgs e){ string str=((Control)numericUpDown1).Text; if (string.IsNullOrEmpty(str.Replace("-", "").Replace(".", ""))) return; ...

C#中如何去除numericUpDown中的竖线
C#中 numericUpDown的竖线 指的是 输入的光标 如果想要去掉光标,方法1: 重写父类. 自己修改细节 方法2: 自己实现1个简单的数字选择控件 label标签1个,按钮2个,当点击按钮Up时,增加数字 当点击按钮Down时,减少数字 效果图 int index = 10; \/\/初始值 private void Form1_Load(object sender, ...

相似回答