Visual Basic Autotyper,输出列表框项

时间:2017-07-31 17:41:50

标签: vb.net listbox basic

我正在尝试在Visual Basic中创建一个简单的自动轮询器。我希望它以用户选择的间隔来获取ListBox项和输出。

问题是我不知道如何让Timer的Tick事件发送每一行并重新启动到列表的顶部并继续以这种方式循环。

表单设计:

enter image description here

我没有列出太多代码,因为还没有太多要列出的内容。

Private Sub intervalTimer_Tick(sender As Object, e As EventArgs) Handles intervalTimer.Tick

End Sub

1 个答案:

答案 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

最后,我希望这可以帮助您满足您的需求:)