NumericUpDown控件在清除文本后保留值

时间:2014-02-07 23:17:18

标签: .net numericupdown

我希望有人能解决这个问题。我有一系列NumericUpDown控件,用于计算以查找每次旅行的小时和分钟已知的多次旅行的总分钟数。我遇到的问题是,当用户通过输入NUD手动清除其中一个NUD控件然后使用退格键清除文本时,该值仍然保留并导致计算中出现意外结果。

以下是我所说的一个例子: enter image description here 以上计算90分钟

enter image description here 以上计算120分钟

enter image description here 在行程2分钟文本被退格清除后,仍然计算120分钟

有没有办法改变这种行为?也许我错过了一些明显的东西。有什么想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试使用控件的leave事件来检查“Text”属性:

numericUpDown1.Leave += numLeave;
numericUpDown2.Leave += numLeave;

void numLeave(object sender, EventArgs e) {
  NumericUpDown nud = sender as NumericUpDown;
  if (nud != null) {
    if (nud.Text == string.Empty) {
      nud.Value = nud.Minimum;
      nud.Text = nud.Value.ToString();
    }
  }
}

请注意,Text属性在Intellisense中是隐藏的,但它可以正常工作。