我正在用C#(.NET 4.0)编写一个小应用程序。我想在数值下降时触发一个事件,但似乎当控件失去焦点或有多个更改时,数值UpDown ValueChanged 会触发。
详细描述:我正在将(OnPropertyChanged)numericUpDown与对象的属性绑定,以便立即反映更改。但我还需要使用这个新更改的 numericUpDown 值来计算一些东西(全局/与对象无关)。但是,如果我使用 ValueChanged 事件,它触发为时已晚。
简短描述:
我需要一个与OnPropertyChanged具有类似功能的事件。
我能做什么?
编辑:在 ValueChanged 事件处理程序中,我对对象进行了一些计算,但已更改的值尚未提交到对象属性,因此我认为 ValueChanged 事件滞后。
谢谢你的帮助。
ValueChanged 是你需要使用的。 我检查了一下,当控件失去焦点时它没有触发,我无法像您声称的那样输入多个更改。 如果我非常快速地单击三次,消息框将显示第一次单击的预期值,因此这就是您想要的。 我不明白你说ValueChange开火太晚了。 它甚至在屏幕上重新绘制之前就在消息框中显示新值。
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
MessageBox.Show("Value changed to " + numericUpDown1.Value.ToString());
}