当前位置: 代码迷 >> VB Dotnet >> 怎么显示一个时间段里的数据,多谢!
  详细解决方案

怎么显示一个时间段里的数据,多谢!

热度:249   发布时间:2016-04-25 02:21:59.0
如何显示一个时间段里的数据,谢谢!!!

Public Class Form1
    Private s As Short = 0
    Private s1 As Short
    Private s2 As Short
    Private d(5) As Short
    Private da(5) As Short
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Label1.Text = CShort(Label1.Text) + 1
        s += 1
        s1 += 1
        If s1 = 6 Then
            s1 = 0
            da = d

        Else
            d(s1 - 1) = CShort(Label1.Text)
        End If
        If s = 5 Then
            Timer2.Start()

        End If
    End Sub

    Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
        s2 += 1
        If s2 = 6 Then
            s2 = 0
        Else
            Label2.Text = da(s2 - 1)
        End If
    End Sub
End Class

lable1里每秒显示一个数据,每5秒把显示过得数据记录到d(5) 
我想在lable2里显示前5秒里的lable1里显示过的数据,(也就是lable2里如何延迟5秒,显示LABLE1里显示过的数据)该如何修改上面代码,谢谢!!!
------解决方案--------------------
Structure myData
    Dim time As Date '数据产生的时间
    Dim data As String '数据内容
    Dim inHisLog As Boolean '数据是否回显过
End Structure

试试这个。每秒除了显示label1外,还检索历史的myData,将5秒前的、且inHisLog=false的全扔进label2,并且把inHisLog标为True

或者用二维数组也一样,就是没这么方便
------解决方案--------------------


Public Class Form1
    Dim strX(5) As String
    Private Sub tmr_Tick(sender As System.Object, e As System.EventArgs) Handles tmr.Tick
        lbl1.Text = Int(Rnd(222) * 90000 + 10000) '第一个label显示数值
        For i = 5 To 1 Step -1
            If Not (strX(i - 1) Is Nothing) Then strX(i) = strX(i - 1) '依次后移各个数组项
        Next
        strX(0) = lbl1.Text '在第一位记录最新的数
        If Not (strX(5) Is Nothing) Then lbl2.Text = strX(5) '只有在数组全填满的时候,第二个label才会开始显示
        txtView.AppendText(Now & ":" & vbTab & lbl1.Text & vbTab & lbl2.Text & vbCrLf) '两个label的历史记录
    End Sub
End Class
  相关解决方案