1、由于需求是 对输入的数值内容进行判断,而numericupdown控件自带数据上下限功能,就用numericupdown编写了需要的功能
2、但在numericupdown有一个输入超限内容,数据自动回滚功能,这与我的设计不一致,我需要的是输入超限内容后,numericupdown显示输入前内容,在查讯很多资料后,发现只有TextChanged事件可以满足需求
3、但是又遇到另一个问题,如果我numericupdown的数值上下限是20——200,输入1就直接报超限了,但我想输入的是100,请问这种该怎么处理
4、ValueChanged、Validating、KeyPress等事件都试过,输入超限内容,数值直接回滚到上下限,即输入后直接显示上下限值,根本不会进行超限范围判断
我numericupdown_TextChanged是这样写的
private void Num_TextChanged(object sender, EventArgs e)
{
NumericUpDown num = (NumericUpDown)sender;
string str = ((Control)num).Text;
if (string.IsNullOrEmpty(str.Replace("-", "").Replace(".", "")))
{
return;
}
else
{
decimal mval = 0;
if (decimal.TryParse(str, out mval))
{
if (mval > num.Maximum || mval < num.Minimum)
{
num.Value = ppStorage.GetData<Decimal>(num);
MessageBox.Show("输入的数值超限" + "\r\n" + "数值可修改范围:" + num.Minimum + "~" + num.Maximum);
}
else
{
;
}
}
else
{
num.Value = ppStorage.GetData<Decimal>(num);
}
}
}