没有好办法做到这一点.您可以找到特定情况的变通方法,例如
在数字下拉列表中监听MouseDown或其他内容而不是valueChanged.
在按钮单击事件处理程序中设置一个标志,该标志将禁止显示消息框.
一般来说,您应该尝试以一种方式来组织您的表单,使得值的变化无关紧要.
您可以检查numericUpDown是否为ActiveControl.在按钮单击期间设置numericUpDown的值时,button1应该是ActiveControl.当用户通过numericUpDown更改值时,numericUpDown应该是ActiveControl.
if(numericUpDown1 == this.ActiveControl) { MessageBox.Show("value changed"); }