我有一个数组A,我只想监视该数组中的更改,返回该数组的更改位置。
myOldTextBox = myTextBox
myTextBox = New TextBox() {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}
Dim i As Integer
For i = 0 To myTextBox.Length - 1
If myTextBox(i).Text <> myOldTextBox(i).Text Then
Dim fs As Integer
fs = farray.Length
farray(fs) = i
End If
Next i
我是vb .net的新手。谢谢。
答案 0 :(得分:2)
我不相信你能做到这一点。
对于常规变量,我建议使用get / set。
对于数组,我建议创建一个更新值的方法,而不是直接设置值(您可以通过使数组为私有来强制执行此操作,并仅通过get和set方法对其进行访问)。
在那种方法中,你可以做任何你想做的事。
伪代码:
private _array
Public Function GetArray(ByVal key As String) As String
return _array(key)
End Function
Public Function SetArray(ByVal key As String, ByVal val As String) as String
_array(key) = val
return val;
End Function
答案 1 :(得分:0)
添加列表框,每当满足if条件时,将内容添加到列表框
myTextBox = New TextBox() {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}
Dim i As Integer
For i = 0 To myTextBox.Length - 1
If myTextBox(i).Text <> myOldTextBox(i).Text Then
Dim fs As Integer
fs = farray.Length
farray(fs) = i
Listbox1.items.add(Format(now,"yyyy-MM-dd hh:mm:ss") & _
" array number changed: " & i
End If
Next i
答案 2 :(得分:0)
编辑:(没有注意到你在做我发布的内容)
我会将For循环更改为Do While循环,因为我在For循环中比较子字符串时发现了问题,请尝试查看是否不能解决问题......
(我甚至尝试过使用子串的循环失败的Microsoft代码)
另外,我强烈建议您使用MessageBox.Show(sMsg)或Debug.WriteLine(sMsg)来确保数据正确...