【问题标题】:Detecting when text in a textbox changes (while typing)检测文本框中的文本何时更改(键入时)
【发布时间】:2014-02-28 17:25:23
【问题描述】:

TextBox 上的 .TextChanged 事件仅在 TextBox 失去焦点后触发。有没有办法检测用户输入时输入的每个字符?

我知道单选按钮有一个名为CurrentCellDirtyStateChanged 的类似事件来检测按钮何时被点击,而无需等待它失去焦点。我试图为TextBox 找到类似的东西。

【问题讨论】:

标签: vb.net winforms textbox textchanged


【解决方案1】:

TextChanged 事件仅在文本框失去焦点时触发是不正确的。这段代码

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
                                 ByVal e As System.EventArgs) _
    Handles TextBox1.TextChanged

    System.Diagnostics.Debug.WriteLine("TextBox1.Text = " & TextBox1.Text)
End Sub

在输入“Hello”时产生以下输出(在“输出”窗口中):

TextBox1.Text = H
TextBox1.Text = 他
TextBox1.Text = Hel
TextBox1.Text = 地狱
TextBox1.Text = 你好

但是,它也会在您删除字符时触发,因此如果您打算过滤字符,请使用其中一个关键事件。

【讨论】:

  • 你是对的。但是,当我测试它时,它对我不起作用。我仍然不知道为什么,但它现在正在工作。谢谢。
【解决方案2】:

您可以使用KeyDownKeyPress 事件。每当您按下某个键时,它们就会触发。

【讨论】:

    猜你喜欢
    • 2011-09-03
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多