C# 文本框更改状态

C# 文本框更改状态,c#,C#,我的表格上有一个文本框。当我正在更改文本但尚未完成时,如果我添加事件TextChanged,那么在我更改文本期间将引发此事件=>这不是我所期望的 第二种情况:我没有使用TextChanged,而是使用text_Validated或text_Validating event,它只在鼠标指针指向文本框本身以外的另一个区域后才起作用 因此,我的问题是,如何实现在更改文本而不移动指针(如TextValidated行为)后,textbox事件将引发 我希望你能理解我目前的问题,并就如何解决这个问题给我一个

我的表格上有一个文本框。当我正在更改文本但尚未完成时,如果我添加事件TextChanged,那么在我更改文本期间将引发此事件=>这不是我所期望的

第二种情况:我没有使用TextChanged,而是使用text_Validated或text_Validating event,它只在鼠标指针指向文本框本身以外的另一个区域后才起作用

因此,我的问题是,如何实现在更改文本而不移动指针(如TextValidated行为)后,textbox事件将引发


我希望你能理解我目前的问题,并就如何解决这个问题给我一个建议。

类似的事情也许

处理TextChanged事件并在其中添加以下内容:

发生这种情况时保存时间戳 在局部变量中。 如果以前有 时间戳已被缓存,即在 控件标记属性,或 无论在哪里,比较 两个时间戳,看看x的数量 时间已经过去了,两次会议之间出现了延迟 文本更改。如果它大于x 假定用户 已经完成了打字和做任何事情 你想要 将最新的时间戳再次缓存在标记中的某个位置
问题是您何时知道用户已完成?。他是否真的完成了输入,他只是在考虑下一步应该键入什么,还是只是在键盘上搜索正确的键

所以你只能猜测。如果这种猜测适合您,您可以在表单中添加一个。将其设置为1000毫秒,并在每次TextChanged事件切换时将其重置为false,然后再次重置为true。只需在事件中添加猜测UserFinished函数

示例代码
这是WebForms、WinForms、WPF、Silverlight还是什么?如果不是文本框失去焦点,那么您确定用户何时完成键入的标准是什么?我想他想在用户在失去焦点之前停止键入一段时间后做些什么。这是winform。对Jimmy是对的,一旦用户停止输入一段时间,就做些什么!
    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.
}