暂停文本框 在按下"Enter"之前不断读取的值



我有一个文本框,它的文本输入通过每100ms运行一次的计时器不断读取。我想找到一种方法(也许是创建一个事件(,允许我继续读取之前输入的数据;输入";在我的键盘上或以某种方式使用我的鼠标。

当前的行为是,每当我试图在这个文本框中输入一个新的数字时,我输入的值就会被读入";块";如果它是一个更大的值。我的意思是,如果我输入任何高于两位数的值;10〃;则该值被读取为"0";1〃;那么";10.";对于数百的值,情况会变得更糟

[Ex]350被读取为第一个";3〃;那么";35〃;然后最后";350;

这当然是因为计时器事件发生得太快了,但整个系统需要100ms。

我想知道是否有人能用一种优雅的方式让我输入一个大于10的数字,该数字将被读取为完整值,而不是被分解。我认为这将是一个";text_changed";事件或类似的事情,但我很难实现这个

您可以使用Validated事件而不是Changed事件。也可以使用LeaveLostFocus事件。Validated的问题是,当根本不编辑文本框时(例如,当编辑其他控件时(,它也会被激发。

LeaveLostFocus的区别在于,当Form失去焦点但光标仍在文本框内时,LostFocus也会被激发。而CCD_ 10仅在光标移动到另一个控件时才被激发。

我找到了一个解决方案。

我只是简单地隐藏了最初的文本框,然后在可以接受用户输入的完全相同的地方显示一个新的文本框。我创建了一个事件,如果你双击原始文本框,它会隐藏起来,另一个事件会显示在它的位置,而用户甚至不知道。这允许计时器继续读取原始文本框,同时允许用户手动输入新值。我创建了第二个事件;输入";要按下,然后将新值分配给原始文本框,然后volia!

最新更新