2017-07-31 4 views
-1

Visual Basicで簡単な自動タイピングをしようとしています。私はそれがListBox項目を取って、ユーザーが選択した間隔で出力したいと思う。Visual Basic Autotyper、リストボックスの項目を出力する

問題は、Timer's Tickイベントを各行を送信し、リストの先頭から再起動してこの方法でループを続ける方法を知らないことです。

フォームデザイン:

enter image description here

本当にまだリストアップする多くはありませんので、私は多くのコードをリストされていません。ここで

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

End Sub 
+1

出力はどこですか?またはタイマーを使用して最初の行とループを取得する方法を知る必要がありますか? –

+0

"Seconds"を含むテキストボックスは、数値を読み取るのには適していません。 「4秒」、「5分」、「0.15分」などの入力を受け入れますか? 「4秒」「4秒」「ibfcweew」などの入力も考慮する必要があります。代わりにNumericUpDownコントロールを使用します。ドロップダウンには「分」と「秒」が入力されます。 – djv

+0

'ListBoxの項目を取り出し、ユーザーの選択した間隔で出力します。 – djv

答えて

0

は、コードですが、ListViewListBoxを置き換えする必要がある、これは、コードが動作するためだけにある、同じ外観です。

このコードは、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 

最終的に私は、これはあなたが必要なものをお届けしますことを願っています:)

関連する問題