在VB中,如何在计时器上显示数组中的所有字符串?

时间:2016-11-29 04:48:33

标签: arrays vb.net timer

好的,这是我的用例。我有一个表单从数据库中的许多表中提取表单的不同部分。每次我提取信息,我都会测试以确保没有错误。目前我正在使用msgbox来显示是否有错误,但我正在重写应用程序,而是在“状态”行区域显示这些消息。它只是一个标签,我将字符串写入闪烁错误的表单。这在我的单曲“你做了这个,你得到了一个错误”表格中非常有效。但在我的一个表单中,大约有6件事可能会出错,并且它正在加载。所以这不是单一动作,单一错误类型的交易。

我的想法是将任何错误加载到一个数组中,然后每次显示一个错误5秒,然后循环返回并再次执行,至少5次。所以实际上我希望它显示每个错误,持续5秒,然后显示下一个错误5秒,然后重新开始,持续5次,然后停止。

问题是,虽然我有大约10个关于如何做到这一点的想法,但它们看起来都非常复杂和复杂(我不想花10个小时写它只是为了弄清楚它不会起作用)。我正在寻找“最好的”方式。

所以......阵列是最好的方式吗?或者列表或其他方式会更好?我在这里寻找想法。你会怎么做?

2 个答案:

答案 0 :(得分:0)

最终,您可以使用数组来实现您想要实现的目标。这可以通过以下步骤完成:

  1. 当您从表中提取信息时,请检查错误,如果有错误,请将其放入数组中。
  2. 定义一个将循环5次的for循环
  3. 定义另一个嵌套循环以遍历数组以逐个显示消息
  4. 每次显示消息后,请将睡眠或延迟时间设为5秒
  5. 如果您按照这些说明操作,只需几分钟即可编写代码

答案 1 :(得分:0)

我最后通过使用组合框和列表来解决这个问题,然后让我的组合框闪烁。在只能抛出一个错误的表单上,我使用标签代替。以下是我的代码中的大部分内容:

 Private Sub ErrorCheck()

    If errorList.Count = 1 Then
        ErrorComboBox.Visible = True
        DismissErrorButton.Visible = True
        For Each errors As String In errorList
            ErrorComboBox.Text = (errors)
        Next
        ErrorBlinkTimer.Enabled = True            
    ElseIf errorList.Count > 1 Then
        ErrorComboBox.Visible = True
        DismissErrorButton.Visible = True
        ErrorComboBox.Text = "There were errors, click drop down to view!"
        For Each errors As String In errorList
            ErrorComboBox.Items.Add(errors)
        Next
    Else

    End If


End Sub

我所做的是在SUB中可以抛出错误的每个东西之后,我收集错误并将其写入带有errorList.add的errorList,如下所示:

 Catch ex As Exception
        Dim errorStr = "An Error Occurred in " & Me.Name & " writing into the OpenEvents table " _
                           & "for setting the Alert radio button."
        log(errorStr & " - " & ex.Message)
        errorList.Add(errorStr)

日志功能是一个用于写入日志的自定义函数,但其​​余的是标准的VB.net内容。正如您所看到的,如果我得到任何异常(我也对每个查询执行相同的操作),它会将错误写入errorList,然后使用错误闪烁组合框。我有一些更多的逻辑来使它变得美观漂亮,但你明白了。

在每个sub可以抛出错误的末尾,我只需要调用它:

ErrorCheck()

和魔术一样,如果有任何错误,组合框列表会出现亮红色闪烁文字,让他们知道。如果他们点击它,并且有多个错误,他们可以在一个很好的列表中看到它们。点击它也会使它停止闪烁,因为这会很烦人...... LOL

这最终总体上工作得更好,但它并不像我的第一种做法那么漂亮......但是,不管我做了什么,它都会在表格上引起问题让它贯穿其中闪烁循环5x一个接一个地显示每个错误。我找到了解决大多数工作的问题,但仍然存在性能影响,所以我为此抛弃了它。它的工作做得很好。