.net NumericUpDown控件在清除文本后保留值
我希望有人能解决这个问题。我有一系列的NumericUpDown控件,在计算中使用这些控件来查找每次行程的小时数和分钟数已知的行程所经过的总分钟数。我遇到的问题是,当用户通过输入NUD然后使用backspace键清除文本来手动清除其中一个NUD控件时,该值仍然保留,并在计算中导致意外结果 下面是我所说的一个例子: 超过90分钟 以上计算120分钟 通过退格清除trip2 minutes文本后,仍然计算120分钟 有没有办法改变这种行为?也许我错过了一些明显的东西。有什么想法吗.net NumericUpDown控件在清除文本后保留值,.net,numericupdown,.net,Numericupdown,我希望有人能解决这个问题。我有一系列的NumericUpDown控件,在计算中使用这些控件来查找每次行程的小时数和分钟数已知的行程所经过的总分钟数。我遇到的问题是,当用户通过输入NUD然后使用backspace键清除文本来手动清除其中一个NUD控件时,该值仍然保留,并在计算中导致意外结果 下面是我所说的一个例子: 超过90分钟 以上计算120分钟 通过退格清除trip2 minutes文本后,仍然计算120分钟 有没有办法改变这种行为?也许我错过了一些明显的东西。有什么想法吗 提前谢谢 您可
提前谢谢 您可以尝试使用控件的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();
}
}
}
请注意,文本属性对Intellisense是隐藏的,但它可以工作。谢谢。。这很好用。我使用foreach循环遍历所有NUD控件,并将事件附加到每个控件。这是NUD控件的默认行为,这仍然有点令人失望,但它现在的工作方式应该是这样的,所以一切都很好。