Visual Basic Autotyper, Вывод элементов списка
Я пытаюсь сделать простой автоматический типер в Visual Basic. Я хочу, чтобы он взял элементы ListBox и вывел их на выбранный пользователем интервал.
Проблема в том, что я не знаю, как заставить событие Tick Timer отправлять каждую строку, перезапускать вверху списка и продолжать цикл таким образом.
Дизайн формы:
Я не перечислил много кода, потому что на самом деле не так много, чтобы перечислить.
Private Sub intervalTimer_Tick(sender As Object, e As EventArgs) Handles intervalTimer.Tick
End Sub
1 ответ
Вот код, но вам нужно заменить 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
Наконец, я надеюсь, что это поможет вам с тем, что вам нужно:)