NumericUpDown ValueChanged事件会立即产生影响吗?

时间:2012-06-23 10:55:54

标签: c# event-handling numericupdown

我正在用C#(.NET 4.0)编写一个小应用程序。我希望在numericUpDown中值更改时触发事件,但似乎当控件失去焦点或有多个更改时,numericUpDown ValueChanged将触发。

详细说明: 我绑定(OnPropertyChanged)numericUpDown与对象的属性,以便立即反映更改。但我还需要使用这个新更改的numericUpDown值来计算某些内容(全局/与对象无关)。但是如果我使用ValueChanged事件,那就太晚了。

简短说明:

我需要一个与OnPropertyChanged具有类似功能的活动。

我该怎么办?

修改 在ValueChanged事件处理程序中,我对对象进行了一些计算,但是已更改的值尚未提交给object属性,因此我认为ValueChanged事件滞后。

感谢您的帮助。

1 个答案:

答案 0 :(得分:8)

ValueChanged是您需要使用的。我检查过,当控件失去焦点时它没有触发,我无法按照你声明的方式输入多个更改。如果我快速点击三次,消息框会显示第一次点击的预期值,这就是你想要的。我不知道你说ValueChanged太晚了。它甚至在重新绘制在屏幕上之前就会在消息框中显示新值。

    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
        MessageBox.Show("Value changed to " + numericUpDown1.Value.ToString());
    }