Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有任何VB.Net事件执行与VBA相同的操作;更新后;?_Vb.net_Textbox_Updating - Fatal编程技术网

是否有任何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所做的。