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
Arrays 如何在vb.net中观察数组的变化_Arrays_Vb.net - Fatal编程技术网

Arrays 如何在vb.net中观察数组的变化

Arrays 如何在vb.net中观察数组的变化,arrays,vb.net,Arrays,Vb.net,我有一个数组A,我只想监视该数组中的变化,返回该数组的变化位置 myOldTextBox = myTextBox myTextBox = New TextBox() {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5} Dim i As Integer For i = 0 To myTextBox.Length - 1 If myTextBox

我有一个数组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
myOldTextBox=myTextBox
myTextBox=newtextbox(){TextBox1,TextBox2,TextBox3,TextBox4,TextBox5}
作为整数的Dim i
对于myTextBox.Length-1,i=0
如果myTextBox(i).Text myOldTextBox(i).Text
将fs设置为整数
fs=远射线长度
法拉利(fs)=i
如果结束
接下来我

我是vb.net的新手。谢谢。

我相信你做不到

对于正则变量,我建议使用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

添加一个列表框,只要满足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
myTextBox=newtextbox(){TextBox1,TextBox2,TextBox3,TextBox4,TextBox5}
作为整数的Dim i
对于myTextBox.Length-1,i=0
如果myTextBox(i).Text myOldTextBox(i).Text
将fs设置为整数
fs=远射线长度
法拉利(fs)=i
Listbox1.items.add(格式(现在是“yyyy-MM-dd hh:MM:ss”)&_
数组编号已更改:“&i”
如果结束
接下来我
编辑:(没有注意到你在做我发布的事情)

我会将For循环更改为Do While循环,因为我在比较For循环中的子字符串时发现了问题,请尝试一下,看看这是否能解决您的问题

(我甚至尝试过Microsoft代码,它在带有子字符串的for循环中失败)


另外,我强烈建议您使用MessageBox.Show(sMsg)或Debug.WriteLine(sMsg)为确保数据正确…

您希望如何对其进行监控?将更改的数组的编号放在列表框中?我看不到其余的代码,您是否有文本框的引用?如果没有,您将始终比较相同的.Text。此外,如果使用farray(farray.Length),您将出现溢出错误=i。我建议您处理textbox的TextChanged事件,以确定值是否正在更改。