2016-12-12 2 views
0

gut funktioniert, ich bin ein Timer zu machen (um genau zu sein, es ist ein Internet Café Standalone-Timer, die auf Visual Basic 2010 mit einem Zielrahmen von .NET Framework 4.5 ist .Timer nicht in VB.NET 2010

Jetzt

, eine Mini-Form ist es, dass Du zeigt: time start, time out, minutes (total minutes of your rent), and your time left. ich habe den Inhalt der Zeit zu bekommen beginnt auf meine Main.vb, gleich die Zeit heraus verwaltet werden, und das Protokoll (siehe weiter unten den Code Referenz) Jetzt versuche ich, die Zeit zu bekommen, die ständig jede Minute aktualisiert. Ausgabe ist wie: "33 minutes left"

Main.vb:

 If TextBox1.Text = My.Settings.userpass Then 
      MessageBox.Show("Enjoy!", "...") 
      dtFuture = DateTime.Now.AddMinutes(min.Text).ToString("hh:mm:ss") 
      Limited.currtime.Text = DateTime.Now.ToString("hh:mm:ss") 
      Limited.timeout.Text = dtFuture 
      Limited.minutes.Text = min.Text 
      Limited.Timer1.Interval = 1 
      Limited.Timer1.Start() 
      Limited.Show() 
      Me.Close() 
     Else 
      ... 
     End If 

Limited.vb (das ist die Form, wenn Sie begrenzte Zeit nicht offen Zeit haben):

Public Class Limited 
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) 
     Dim foo As New TimeSpan 
     Dim dtfuture As New DateTime 
     Dim timecurrent As TimeSpan = dtfuture.Subtract(DateTime.Now) 
     Dim timeCheckIn As String = Format(timecurrent, "HH:mm:ss") 
     dtfuture = DateTime.Now.AddMinutes(minutes.Text) 

     If Timer1.Interval <> 100 Then Timer1.Interval = 100 
     If DateTime.Now > dtfuture Then 
      timelft.Text = "Time's up!" 
      block.Show() 
      Timer1.Stop() 
      Me.Close() 
     Else 
      foo = dtfuture - DateTime.Now 
      ts = TimeSpan.Parse(timeCheckIn) 
      timelft.Text = String.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", _ 
           foo.Hours, foo.Minutes, foo.Seconds, foo.Milliseconds) 
     End If 
    End Sub 

    Private Sub Label3_Click(sender As Object, e As EventArgs) Handles Label3.Click 

    End Sub 
    Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick 
     Label3.Text = TimeOfDay 
    End Sub 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     ' hide app in to the taskbar 

    End Sub 
End Class 
+1

Und dein Problem ist? –

+0

Nun, ich habe die Zeit, dass die Miete begann und die Zeit, dass er aufhören wird, aber der Timer oder die "Label" nicht angezeigt wird. – astronomicalXoom

+0

Und sie sind definitiv an der Vorderseite des Formulars sichtbar, nicht hinter irgendetwas versteckt? Schriftfarbe anders als Hintergrund usw.? –

Antwort

0

Grundsätzlich Ihre dtfuture nicht den korrekten Wert in Timer1_Tick haben. Ich bin nicht sicher, was ts bedeutet, so dass Sie diesen Teil möglicherweise selbst ändern müssen.

Private Sub Timer1_Tick(sender As Object, e As EventArgs) 
    Dim foo As New TimeSpan 

    ' This is when time will be up. 
    Dim dtfuture As DateTime = DateTime.Parse(timeout.Text) 

    ' I have no idea what these variables do. Not sure what "ts" below means.  
    Dim timecurrent As TimeSpan = dtfuture.Subtract(DateTime.Now) 
    Dim timeCheckIn As String = Format(timecurrent, "HH:mm:ss") 

    ' The If in original code is unnecessary. 
    Timer1.Interval = 100 

    If DateTime.Now > dtfuture Then 
     timelft.Text = "Time's up!" 
     block.Show() 
     Timer1.Stop() 
     Me.Close() 
    Else 
     foo = dtfuture - DateTime.Now 
     ts = TimeSpan.Parse(timeCheckIn) 
     timelft.Text = String.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", _ 
          foo.Hours, foo.Minutes, foo.Seconds, foo.Milliseconds) 
    End If 
End Sub 
+0

Ich habe es versucht und es wird ein Fehler angezeigt: "Der Wert von 'System.TimeSpan' kann nicht in 'Datum' konvertiert werden." – astronomicalXoom

+0

@astronomicalXoom Sorry, das sollte 'DateTime.Parse' sein. Ich habe die Antwort aktualisiert. – jetstream96

Verwandte Themen