【发布时间】:2014-02-28 17:25:23
【问题描述】:
TextBox 上的 .TextChanged 事件仅在 TextBox 失去焦点后触发。有没有办法检测用户输入时输入的每个字符?
我知道单选按钮有一个名为CurrentCellDirtyStateChanged 的类似事件来检测按钮何时被点击,而无需等待它失去焦点。我试图为TextBox 找到类似的东西。
【问题讨论】:
标签: vb.net winforms textbox textchanged
TextBox 上的 .TextChanged 事件仅在 TextBox 失去焦点后触发。有没有办法检测用户输入时输入的每个字符?
我知道单选按钮有一个名为CurrentCellDirtyStateChanged 的类似事件来检测按钮何时被点击,而无需等待它失去焦点。我试图为TextBox 找到类似的东西。
【问题讨论】:
标签: vb.net winforms textbox textchanged
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 = 你好
但是,它也会在您删除字符时触发,因此如果您打算过滤字符,请使用其中一个关键事件。
【讨论】: