我希望有人能解决这个问题。我有一系列NumericUpDown控件,用于计算以查找每次旅行的小时和分钟已知的多次旅行的总分钟数。我遇到的问题是,当用户通过输入NUD手动清除其中一个NUD控件然后使用退格键清除文本时,该值仍然保留并导致计算中出现意外结果。
以下是我所说的一个例子: 以上计算90分钟
以上计算120分钟
在行程2分钟文本被退格清除后,仍然计算120分钟
有没有办法改变这种行为?也许我错过了一些明显的东西。有什么想法吗?
提前致谢!
答案 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中是隐藏的,但它可以正常工作。