2016-03-24 9 views
-1

Ich bin neu in Visual Basic und ich versuche, eine Reihe von Codes in einem vom Benutzer eingestellten Zeitintervall zu laufen welche letztere kann jederzeit aus dem Textfeld ändern. bitte füge die von mir erstellte Schnittstelle an.Wie man einen Timer im Visual Basic steuert, wo das Zeitintervall des Timers vom Benutzer aus einer Textbox gesetzt wird

user input form

+0

'Ich versuche, ... 'und wo ist der code der eigentlich versucht irgendwas zu machen? Schwer zu führen Sie ohne den Code – Plutonix

+0

Zeigen Sie uns, was Sie bereits versucht haben. Wir werden keine vollständigen Lösungen erstellen, aber wir werden Ihnen helfen, Bugs zu beheben. – SubliemeSiem

Antwort

0

Ich werde Ihnen vorschlagen, jedes Mal, setzen Sie das Intervall Wert, dass der Benutzer Integer Wert innerhalb des TextBox durch den Umgang mit den TextBox.TextChanged Ereignis ein Recht setzt (können Sie hinzufügen oder keine richtige fehler- Handhabung).

Ein Beispiel:

Friend WithEvents Timer1 As New System.Windows.Forms.Timer 

Private Sub ResetTimerInterval(ByVal tmr As Timer, ByVal interval As Integer) 
    If (tmr IsNot Nothing) Then 
     With tmr 
      .Stop() 
      .Enabled = False 
      .Interval = interval 
      .Enabled = True 
      .Start() 
     End With 
    End If 
End Sub 

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) _ 
Handles TextBox1.TextChanged 

    Dim value As Integer 

    If Integer.TryParse(DirectCast(sender, TextBox).Text, value) Then 
     Me.ResetTimerInterval(value) 
    End If 

End Sub 

Wenn Sie auch das aktuelle Intervall wissen möchten, können Sie es verfolgen, indem Sie eine Eigenschaft hinzufügen:

Friend WithEvents Timer1 As New System.Windows.Forms.Timer 

Private Property TimerInverval As Integer 
    Get 
     Return Me.timerIntervalB 
    End Get 
    Set(ByVal value As Integer) 
     If (value <> Me.timerIntervalB) Then 
      Me.timerIntervalB = value 
      Me.ResetTimerInterval(value) 
     End If 
    End Set 
End Property 
' Backing field. 
Private timerIntervalB As Integer 

Private Sub ResetTimerInterval(ByVal tmr As Timer, ByVal interval As Integer) 
    If (tmr IsNot Nothing) Then 
     With tmr 
      .Stop() 
      .Enabled = False 
      .Interval = interval 
      .Enabled = True 
      .Start() 
     End With 
    End If 
End Sub 

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) _ 
Handles TextBox1.TextChanged 

    Dim value As Integer 

    If Integer.TryParse(DirectCast(sender, TextBox).Text, value) Then 
     Me.timerIntervalB = value 
    End If 

End Sub 
+0

Vielen Dank für Ihre wertvolle Hilfe. Werde es versuchen. – luvin

+0

@luvin Ich bin froh zu helfen. Bitte denken Sie daran, meine Antwort als akzeptiert zu markieren, wenn es das Problem gelöst hat, danke und willkommen bei SO. – ElektroStudios