检测文本框中的文本何时更改(键入时)

时间:2014-02-28 17:25:24

标签: vb.net winforms textbox textchanged

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

我知道单选按钮有一个名为CurrentCellDirtyStateChanged的类似事件,可以检测单击按钮的时间,而不必等待它失去焦点。我试图为TextBox找到类似的东西。

2 个答案:

答案 0 :(得分:3)

您可以使用KeyDownKeyPress个活动。只要按一个键,它们就会触发。

答案 1 :(得分:3)

仅当文本框失去焦点时才会触发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 = Hell
  TextBox1.Text = Hello

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