我的表单上有一个文本框。虽然我正在更改文本但尚未完成,如果我添加事件TextChanged,那么在我更改text =>期间此事件将会引发这不是我所期望的。
第二种情况:我使用了text_Validated或text_Validating事件,而不是使用TextChanged,它仅在鼠标指针指向文本框本身之外的其他区域后才起作用。
所以,我的问题是如何以这样的方式实现:在更改文本而不移动指针(如TextValidated行为)之后,文本框事件将会提升。
我希望你能理解我目前的问题,并就如何解决这个问题给我一个建议。
答案 0 :(得分:0)
这样的事可能......
处理TextChanged事件并在其中添加以下内容:
答案 1 :(得分:0)
问题是“您何时知道用户已完成?”。他是否真的完成了他的录入,他只是在考虑下一步应该键入什么,还是只是在键盘上搜索正确的键?
所以你只能猜测。如果此猜测适合您,您可以在表单中添加Timer
。将其设置为1000毫秒并在每个TextChanged事件上重置它(将Enabled
切换为false并再次返回true)。而Tick
事件只需添加您的GuessTheUserFinished函数。
timerFilterEntering.Interval = 1000;
timerFilterEntering.Tick += (sender, e) =>
{
timerFilterEntering.Enabled = false;
GuessTheUserFinished(myTextBox.Text);
}
myTextBox.TextChanged += (sender, e) =>
{
timerFilterEntering.Enabled = false;
timerFilterEntering.Enabled = true;
}
void GuesTheUserFinished(string inputSoFar)
{
// ToDo: Whatever you like to do with the input.
}