c# – 确定是否从用户输入发生了更改事件

前端之家收集整理的这篇文章主要介绍了c# – 确定是否从用户输入发生了更改事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在C#中,控件的Changed事件(例如,numericupdown)会被触发,无论该值是由用户直接更改还是由于某些其他事件而以编程方式更改.

有没有办法确定事件是否是由于用户输入而发生的?例如,手动更改numericUpDown1的值并单击button1将显示“value changed”.如果通过用户单击控件中的向上/向下箭头而不是单击button1的结果更改了“值已更改”,该怎么办?

private void numericUpDown1_ValueChanged(object sender,EventArgs e)
    {
        MessageBox.Show("value changed");
    }

    private void button1_Click_1(object sender,EventArgs e)
    {
        numericUpDown1.Value = 3;
    }

解决方法

没有好办法做到这一点.您可以找到特定情况的解决方法,例如

>在数字下拉列表中侦听MouseDown或其他内容而不是valueChanged.
>在按钮单击事件处理程序中设置一个标志,禁止显示消息框.

一般来说,您应该尝试以一种方式来组织您的表单,使得值的变化无关紧要.

猜你在找的C#相关文章