7

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

详细描述: 我将(OnPropertyChanged)numericUpDown 与对象的属性绑定,以便立即反映更改。但我还需要使用这个新更改的 numericUpDown 值来计算一些东西(全局/与对象无关)。但是如果我使用 ValueChanged 事件,它触发得太晚了。

简短的介绍:

我需要一个与 OnPropertyChanged 功能相似的事件。

我能做些什么?

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

感谢您的帮助。

4

1 回答 1

9

ValueChanged 是您需要使用的。我检查了,当控件失去焦点时它没有触发,我不能像你声称的那样输入多个更改。如果我真的快速点击三下,消息框会显示第一次点击的预期值,这就是你想要的。我不明白你说 ValueChanged 触发得太晚了。即使在屏幕上重新绘制之前,它也会在消息框中显示新值。

    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
        MessageBox.Show("Value changed to " + numericUpDown1.Value.ToString());
    }
于 2012-06-23T13:04:50.770 回答