在appconfig中保存变量,以便在方法超出范围

时间:2017-07-17 15:17:50

标签: vb.net

我试图理解这个链接然而无法让它工作。 http://www.neolisk.com/techblog/vbnet-read-write-appconfig。 以下是我相对于问题的代码段。

我正在编写一个WPF应用程序,它必须在程序的生命周期中保留彩色方块。正方形表示通过(p)绿色,失败(f)红色,未完成(y)未完成。我有一个20 x20平方的网格,由于操作员在某个特定时间的位置而改变颜色。这些方块必须在整个生产过程中保持其颜色。我正在模拟操作员0790以允许彩色方块变成红色。该数组表示由于某个时间段而检查方块的颜色状态的次数。即使ChangeColor方法超出范围,我也需要存储这些颜色状态。当ChangColor方法超出范围时,我会丢失与数组元素相关的颜色。在一些特殊的地方保持与元素相关的这些颜色,允许我随着时间的推移继续保留彩色方块,因为其他方法由于其他过程而被调用。我认为appconfig可以保存与每个数组中的数组元素相关的颜色变化。然后我可以用appconfig调用它们并将它们放在正确的方块中。这可以通过appconfig完成,还是有更好的方法。我可以保存到INI文件,但这不是最好的方式,我相信有更好的方法。下面代码中的0790运算符导致数组元素1与红色相关联。下次调用0790时,它将查看元素2,并为其分配颜色。

Public Sub ChangColor()

        Dim test As String = "F"
        Dim var As Integer = "0"
        Dim MainWindow1 As New MainWindow1
        Opeator = "0970"

        Dim bAns As Boolean = False
        If Opeator = "0970" Then  ''0-19
            Dim numbers As Integer() = {1, 2, 3, 4, 5, 66, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}
            If test = "F" Then
                Do Until var = 1
                    flagR = numbers(ctr)
                    Me.Resources("DynamicBG" + flagR) = New SolidColorBrush(Colors.Red)
                    ctr = ctr + 1

                    var = 1
                Loop


                ElseIf test = "P" Then
                    Me.Resources("DynamicBG" + flagG) = New SolidColorBrush(Colors.Green)
                ElseIf test = "x" Then
                    Me.Resources("DynamicBG" + flagY) = New SolidColorBrush(Colors.Yellow)
                End If
            End If


        If Opeator = "0985" Then
            Dim intData() As Integer = {20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39}
            If test = "F" Then '20-39
                Me.Resources("DynamicBG" + flagR) = New SolidColorBrush(Colors.Red)
            ElseIf test = "P" Then
                Me.Resources("DynamicBG" + flagG) = New SolidColorBrush(Colors.Green)
            ElseIf test = "x" Then
                Me.Resources("DynamicBG" + flagY) = New SolidColorBrush(Colors.Yellow)
            End If
        End If

        If Opeator = "1318" Then
            Dim intData() As Integer = {40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59}
            If test = "F" Then '40-59
                Me.Resources("DynamicBG" + flagR) = New SolidColorBrush(Colors.Red)
            ElseIf test = "P" Then
                Me.Resources("DynamicBG" + flagG) = New SolidColorBrush(Colors.Green)
            ElseIf test = "x" Then
                Me.Resources("DynamicBG" + flagY) = New SolidColorBrush(Colors.Yellow)
            End If
        End If

        If Opeator = "23187" Then

            If test = "F" Then '60-79
                Me.Resources("DynamicBG" + flagR) = New SolidColorBrush(Colors.Red)
            ElseIf test = "P" Then
                Me.Resources("DynamicBG" + flagG) = New SolidColorBrush(Colors.Green)
            ElseIf test = "x" Then
                Me.Resources("DynamicBG" + flagY) = New SolidColorBrush(Colors.Yellow)
            End If
        End If

    End Sub

0 个答案:

没有答案