日期:2014-05-18  浏览次数:20878 次

关于 NumericUpDown 控件 ValueChange 事件中加消息框的很 bug 的一个问题,在线等
将 NumericUpDown 控件的最大值设为50,初值为0。
在该控件的ValueChange事件中加入如下代码
if(NumericUpDown.Value==50)
{
  MessageBox.Show(“最大值不得超过50”);
}
然后按住控件的向上箭头不放开鼠标,数值变化值到50时弹出消息框,点消息框“确定”按钮,程序崩溃,提示“未将引用设置到对象的实例”。
个人认为是微软系统的问题,请求解决方法!!


------解决方案--------------------
你可以将判断放在其他事件中,比如按钮提交确认时判断,没必要每改变一次值就判断一次

另外,你可以设置NumericUpDown 控件的Maximum属性最大值设置为50,也没必要弹出什么判断消息提示,就像dropdownList选择下拉框,初始化了什么,用户就只能选择什么,没必要提示
------解决方案--------------------
把代码改为下面这样试试:

if(NumericUpDown.Value>=50)
{
NumbericUpDown.Value=50;
MessageBox.Show(“最大值不得超过50”);
}

我不太会C#语法,你应该能明白意思。

因按住NumbericUpDown的箭头,似乎变化并非始终以1为步进,而是有一定增量。具体也不是很确定,要根据实际情况分析。