【发布时间】:2018-10-26 15:16:25
【问题描述】:
我正在尝试制作一个 Windows 表单,它在一些 ReadOnly 文本框中显示一堆数据库数据。在用户可以输入的表单上有一个单一的文本框,它本质上用作搜索参数。
我希望用户条目的设置方式是,一旦用户在文本框中完成输入,表单其余部分的数据就会更新。
现在我尝试使用TextChanged 事件来执行此操作,但问题是每次文本框中发生任何事情时TextChanged 都会触发。因此,如果我输入“Hello World”,该事件将触发 11 次。
有没有办法检测用户何时在文本框内完成编辑?如果有,你是怎么做的?
【问题讨论】:
-
除非他们开箱即用,否则你怎么知道他们已经完成了? IE。离开事件。或者也许通过点击一个按钮?
-
您可以:1) 使用
Leave事件在用户退出TextBox时得到通知 2) 使用验证事件(+- 相同) 3) 指示按下@987654326 @ 确认输入 4) 使用CommitButton。更多(我会避免TextChanged)。 -
这就是为什么在文本框旁边有一个搜索按钮。
-
问题是“用户完成”的定义是什么,用户什么时候完成?什么时候停止打字?如果是一个老人每 5 秒输入 1 个字符怎么办?你不能只是“猜测”用户完成了,你需要有一种方法让用户告诉你他已经完成了,最好的方法总是一个简单的按钮,上面写着“搜索”,如果你出于某种原因想要一个不太直观的方式,您可以使用 textbox.focuslost ,因此当他单击其他任何位置时它会触发,同时捕获字符并检查它的 Intro 键