如何在值更改时validationnumericupdown(而不是丢失焦点)

我有一个NumericUpDown ,当值改变(而不是lostfocus)进行新的计算时我需要

如果我把我的代码放在事件ValueChanged这项工作时焦点丢失

如果我把我的代码放在KeyPress然后如果数字不是通过键盘输入(例如复制一个数字并粘贴它)它不起作用

那么我需要使用什么事件?

如果这是按键我需要连接数值更多按键将所有这些转换为字符串并将其转换为十进制,并执行计算,但如果按下的键不是数字(例如退格)它不起作用

您可以使用KeyUp事件来检查CTRL + V的直接编辑和粘贴操作。

然后,您可以使用鼠标右键(上下文菜单)监听MouseUp事件以检查粘贴操作。

在此示例代码中,如果用户输入的数字大于9,则会显示MessageBox

 private void numericUpDown1_KeyUp(object sender, KeyEventArgs e) { if (numericUpDown1.Value >= 10){ numericUpDown1.Value = 0; MessageBox.Show("number must be less than 10!"); } } private void numericUpDown1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { if (numericUpDown1.Value >= 10){ numericUpDown1.Value = 0; MessageBox.Show("number must be less than 10!"); } } }