使用TNumberBox
控件(至少在 Windows 中,也可能是其他平台),当我输入新值,然后按下按钮 ( TButton
) 保存更改时,在读取TNumberBox.Value
属性时,它会在编辑之前返回原始值. 事实证明,直到控件失去焦点后才能访问此值。
现在用于保存更改的按钮,我故意禁用了它的CanFocus
属性,以及我的应用程序中的所有按钮。这是因为在我使用的样式(Jet)中,焦点按钮看起来很糟糕(深灰色背景上的黑色文本)。更不用说,在移动平台上,就我而言,专注实际上是无用的。
否则,如果我不禁CanFocus
用此保存按钮,则焦点将正确地从其上移开,TNumberBox
并且其Value
属性还可以。但是,当禁用CanFocus
保存按钮时,焦点永远不会离开此控件,因此读取其Value
属性会返回旧值。
如何在Value
不将保存按钮更改为 的情况下确保属性返回正确的新值CanFocus
?
启用KillFocusOnReturn
没有用,因为用户必须知道他们需要按“Return”或“Enter”,这不是一个选项。
笔记
如果您要利用该TNumberBox.OnChangeTracking
事件,此问题也会持续存在。如果您甚至无法读取新值,我不确定此事件将如何有用。