是否有任何VB.Net事件执行与VBA相同的操作;更新后;?
在是否有任何VB.Net事件执行与VBA相同的操作;更新后;?,vb.net,textbox,updating,Vb.net,Textbox,Updating,在文本框更改后,我需要做一些事情 如果我使用TextChanged事件,代码将在插入或删除的每个字符上运行 通过谷歌搜索,我发现了一个建议:使用字符串变量来存储文本框的值,并使用输入和离开事件 这是唯一(或更好)的方法吗?我相信在文本更改完成后,您还想更新其他内容。 在每个击键/textchanged事件上更新其他内容可能代价高昂 为此,您可以使用计时器来检测用户是继续按键还是暂停 范例 Private Sub TextBox1_TextChanged(ByVal sender As Syste
文本框
更改后,我需要做一些事情
如果我使用TextChanged
事件,代码将在插入或删除的每个字符上运行
通过谷歌搜索,我发现了一个建议:使用字符串
变量来存储文本框
的值,并使用输入
和离开
事件
这是唯一(或更好)的方法吗?我相信在文本更改完成后,您还想更新其他内容。 在每个击键/textchanged事件上更新其他内容可能代价高昂 为此,您可以使用计时器来检测用户是继续按键还是暂停 范例
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
TimerUserTypingDone.Stop()
TimerUserTypingDone.Interval = 400 ' duration to wait till concluding that typing by user is finished, and get results
TimerUserTypingDone.Start()
End Sub
Private Sub TimerUserTypingDone_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerUserTypingDone.Tick
TimerUserTypingDone.Stop()
UpdateWhatsoEverRequired()
End Sub
我相信在文本更改完成后,您还想更新其他内容。 在每个击键/textchanged事件上更新其他内容可能代价高昂 为此,您可以使用计时器来检测用户是继续按键还是暂停 范例
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
TimerUserTypingDone.Stop()
TimerUserTypingDone.Interval = 400 ' duration to wait till concluding that typing by user is finished, and get results
TimerUserTypingDone.Start()
End Sub
Private Sub TimerUserTypingDone_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerUserTypingDone.Tick
TimerUserTypingDone.Stop()
UpdateWhatsoEverRequired()
End Sub
实际上,您有两种选择: 1使用
输入Leave
模式
这样,当您在文本框中输入文本值时,您可以保存文本值;当您离开文本框时,您可以比较新值
Private _originalText As String 'To remember the text
Private Sub MyTextBox_Enter(Sender As Object, e As EvventArgs) Handles MyTextBox.Enter
'When we enter the TextBox, we save the text value
_originalText = MyTextBox.Text
End Sub
Private Sub MyTextBox_Leave(Sender As Object, e As EventArgs) Handles MyTextBox.Leave
If MyTextBox.Text <> _originalText Then
'The text has changed
Else
'The text has not changed
End If
End Sub
Private\u originalText As String'记住文本
私有子MyTextBox\u Enter(发送者作为对象,e作为EvventArgs)处理MyTextBox。Enter
'当我们输入文本框时,我们保存文本值
_originalText=MyTextBox.Text
端接头
私有子MyTextBox\u Leave(发送者作为对象,e作为事件参数)处理MyTextBox.Leave
如果MyTextBox.Text\u originalText那么
"文字变了,
其他的
“文本没有改变
如果结束
端接头
2使用计时器,可以检测用户何时完成键入
如上所述,这个想法是在两次按键之间给用户半秒的时间。如果我们在该计时器内,我们将再次等待,以发出文本已更改的信号。您实际上有两个选项:
1使用输入Leave
模式
这样,当您在文本框中输入文本值时,您可以保存文本值;当您离开文本框时,您可以比较新值
Private _originalText As String 'To remember the text
Private Sub MyTextBox_Enter(Sender As Object, e As EvventArgs) Handles MyTextBox.Enter
'When we enter the TextBox, we save the text value
_originalText = MyTextBox.Text
End Sub
Private Sub MyTextBox_Leave(Sender As Object, e As EventArgs) Handles MyTextBox.Leave
If MyTextBox.Text <> _originalText Then
'The text has changed
Else
'The text has not changed
End If
End Sub
Private\u originalText As String'记住文本
私有子MyTextBox\u Enter(发送者作为对象,e作为EvventArgs)处理MyTextBox。Enter
'当我们输入文本框时,我们保存文本值
_originalText=MyTextBox.Text
端接头
私有子MyTextBox\u Leave(发送者作为对象,e作为事件参数)处理MyTextBox.Leave
如果MyTextBox.Text\u originalText那么
"文字变了,
其他的
“文本没有改变
如果结束
端接头
2使用计时器,可以检测用户何时完成键入
如上所述,这个想法是在两次按键之间给用户半秒的时间。如果我们在这个计时器内,我们将再次等待,以发出文本已更改的信号。谢谢,但我正在寻找更轻的东西。您能否更具体地说明要求。使用Enter和Leave非常简单。我在问是否有更好的解决方案谢谢,但我想找一些更轻的。你能更具体地说明要求吗。使用输入和离开非常简单。我在问是否有更好的解决方案另一个解决方案是,并恢复@pankaj所做的。另一个解决方案是,并恢复@pankaj所做的。