【发布时间】:2012-06-23 10:55:54
【问题描述】:
我正在用 C# (.NET 4.0) 编写一个小型应用程序。我想在 numericUpDown 中的值更改时触发一个事件,但似乎 numericUpDown ValueChanged 在控件失去焦点或有多个更改时触发。
详细说明: 我将 (OnPropertyChanged) numericUpDown 与对象的属性绑定,以便立即反映更改。但我还需要使用这个新更改的 numericUpDown 值来计算一些东西(全局/与对象无关)。但是如果我使用 ValueChanged 事件,它触发得太晚了。
简短说明:
我需要一个与 OnPropertyChanged 功能相似的事件。
我能做什么?
编辑: 在 ValueChanged 事件处理程序中,我对对象进行了一些计算,但已更改的值尚未提交给对象属性,因此我认为 ValueChanged 事件落后了。
感谢您的帮助。
【问题讨论】:
-
ValueChanged 事件绝对等同于 OnPropertyChanged 类型的事件。如果您想减少计算量,请考虑使用 Leave 事件。
-
@HansPassant 问题是,如果我使用箭头来增加数字,ValueChanged 事件不会触发(如果我再次按下箭头会触发,但会触发之前的更改)。
-
我对此一无所知。发布重现问题的代码。
-
当数字输入 keyb 时会发生这种情况,而不是使用向上/向下箭头。想象一下控件显示“1”并且您需要到达“5000”,您只需输入 5000,因为它比按住向上箭头直到到达 5000 更容易。如果您输入数字,事件将不会触发每次按键,看起来它都会在失去焦点时触发。
标签: c# event-handling numericupdown