[英]TextChanged event in VB.NET
我有兩個基本的文本框,比如說 A 和 B。我想輸入一個文本框以清除另一個文本框的任何輸入。 例如,在 A 中鍵入 123。現在在 B 中鍵入 456。B 應包含 456,A 應為空。 但是,我在 B 中收到 56,而 A 為空。 似乎 B 的第一個輸入用於觸發 TextChanged 並且只存儲剩余的輸入。 我怎樣才能將第一個輸入傳遞給文本框?
這是我的 VB.NET 代碼:
Public Sub A_TextChanged(sender As Object, e As TextChangedEventArgs) Handles A.TextChanged
B.Text = ""
End Sub
Public Sub B_TextChanged(sender As Object, e As TextChangedEventArgs) Handles B.TextChanged
A.Text = ""
End Sub
每當用戶或以編程方式更改文本時,都會發生TextChanged
事件。
在您的情況下,您的A_TextChanged
事件處理程序正在更改 B 的文本,因此調用B_TextChanged
...
添加一些Debug.WriteLine
語句可能會幫助您了解正在發生的事情:當您在 TextBox 中鍵入時,很難使用調試器單步執行。
要解決此問題,請使用布爾標志,以便在從某個事件處理程序調用時不會修改另一個文本框。 例如(即開即用且未經測試):
Private UpdatingTextBox As Boolean
Public Sub A_TextChanged(sender As Object, e As TextChangedEventArgs) Handles A.TextChanged
If Not UpdatingTextBox Then
UpdatingTextBox = True
B.Text = ""
UpdatingTextBox = False
End If
End Sub
Public Sub B_TextChanged(sender As Object, e As TextChangedEventArgs) Handles B.TextChanged
If Not UpdatingTextBox Then
UpdatingTextBox = True
A.Text = ""
UpdatingTextBox = False
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.