我正在尝试在Visual Basic中创建一个简单的自动轮询器。我希望它以用户选择的间隔来获取ListBox项和输出。
问题是我不知道如何让Timer的Tick事件发送每一行并重新启动到列表的顶部并继续以这种方式循环。
表单设计:
我没有列出太多代码,因为还没有太多要列出的内容。
Private Sub intervalTimer_Tick(sender As Object, e As EventArgs) Handles intervalTimer.Tick
End Sub
答案 0 :(得分:0)
以下是代码,但您需要将ListBox
替换为ListView
,它的外观相同,这只是代码可以使用。
此代码将从ListView
获取每一行,并使用具有用户选择间隔的计时器使用MsgBox
输出,只需删除消息框并输出结果,无论你需要什么,你都很好:
首先在公共类中定义此变量:
Dim ListedItems As String
按下设置按钮设置间隔时间:
Try
intervalTimer.Interval = intervalTextBox1.Text * 1000
Catch
MsgBox("The interval must be in purly seconds only!")
End Try
以下是按开始按钮的时间:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For Each LVI As ListViewItem In ListView1.Items
If ListedItems = "" Then
ListedItems = LVI.Text
Else
ListedItems &= vbLf & LVI.Text
End If
Next
Timer1.Start()
End Sub
这是计时器滴答事件的时间:
Private Sub intervalTimer_Tick(sender As Object, e As EventArgs) Handles intervalTimer.Tick
intervalTimer.Stop()
Dim SeprateLine As String
Dim Separator As Integer
If ListedItems.Contains(vbLf) Then
Separator = ListedItems.IndexOf(vbLf)
SeprateLine = ListedItems.Remove(Separator)
ListedItems = ListedItems.Substring(Separator + 1)
Else
SeprateLine = ListedItems
ListedItems = ""
End If
MsgBox(SeprateLine)
If ListedItems <> "" Then
intervalTimer.Start()
End If
End Sub
最后,我希望这可以帮助您满足您的需求:)