【问题标题】:How to run function, when the user finished typing? (C#)当用户完成输入时,如何运行函数? (C#)
【发布时间】:2021-12-17 22:00:15
【问题描述】:

我有一个文本字段,用户可以在其中插入或键入文本以进一步翻译成另一种语言。我需要在用户完成输入后运行该功能 - 如何确定?

【问题讨论】:

  • 你能定义你所说的“完成打字”是什么意思吗?当文本框的文本在一定时间内没有变化时?当文本框失去焦点?当用户按下回车键时?
  • @Sweeper,“完成输入”我的意思是:文本字段内的文本在一段时间内没有变化,然后调用该函数。

标签: c# winforms keyboard


【解决方案1】:

!!!注意定时器的设置顺序

// Create a System.Timers.Timer
System.Timers.Timer aTimer = new System.Timers.Timer();

// On KeyUp, start the countdown
private void richTextBox1_KeyUp(object sender, KeyEventArgs e) {
    aTimer.Interval = 1000; // time in ms (1 sec)
    aTimer.AutoReset = false; // "false" - calls the event once, "true" - repeatedly

    aTimer.Elapsed += OnTimeout; // event binding
    aTimer.Enabled = true; // timer run
}

private void OnTimeout(object sender, ElapsedEventArgs e) {
    if (InvokeRequired) Invoke(new Action(() => DoneTyping() ));
}

// User is "finished typing", do something
private void DoneTyping() {
    // do something
}

【讨论】:

    猜你喜欢
    • 2011-05-12
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多