Benutzer mit den meisten Antworten
Timer Programmieren

Frage
-
Hallo,
Kann mir jemand halfen bei einem Timer?
Ich wollte den Timer (Timer1) so programmieren, sodass er ein Fenster (nach z.B. 1.Minute) auomatisch schließt.
Kennt jemand einen Code?
Microsoft Visual Basic 2010 Express
- Bearbeitet Tolots Montag, 20. Februar 2012 14:46
Antworten
-
Tolots,
Stefan`s code funktioniert bei mir problemlos.
Mach es einfach so:
Platziere auf Deinem Beenden Screen eine Timer komponente. Im Form load Event startest Du dann den Timer und überprüfst so wie Stefan gezeigt hat wie oft ( bei z.B. Timer.Intervall=1000 = 1 sec. ) der Event ausgelöst wurde. Wenn dieser Wert erreicht ist, stoppe den Timer und rufe ME.close auf.
Start des Beenden Screen:
'Visual Basic 2008 - .net 3.5 - Any CPU
Private _BeendenScreen As BeendenScreen
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_BeendenScreen = New BeendenScreen(5)
_BeendenScreen.Show()
Me.Close()
End Sub
BeendenScreen:
'Visual Basic 2008 - .net 3.5 - Any CPU
Public Class BeendenScreen
Private WithEvents _Timer As Windows.Forms.Timer
Private _AnzeigeDauer As Integer
Public Sub New(ByVal AnzeigeDauer As Integer)
InitializeComponent()
_AnzeigeDauer = AnzeigeDauer
_Timer = New Windows.Forms.Timer
_Timer.Interval = 1000
End Sub
Private Sub BeendenScreen_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_Timer.Start()
End Sub
Private Sub _Timer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles _Timer.Tick
_Timer.Enabled = False
_AnzeigeDauer = _AnzeigeDauer - 1
If _AnzeigeDauer = 0 Then
Me.Close()
Else
_Timer.Enabled = True
End If
End Sub
End Class
Ja, da steht VB 2008, das macht aber nichts, funktioniert genauso unter VB 2010.Hannes
If you have got questions about this, just ask.
In a perfect world,
users would never enter data in the wrong form,
files they choose to open would always exist
and code would never have bugs.
C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/- Als Antwort markiert Tolots Montag, 20. Februar 2012 15:35
Alle Antworten
-
Hallo Tolots,
der Artikel ist zwar älter und der Code in C# aber trotzdem:
A CountDownTimer inherited from System.Windows.Forms.Timer
http://www.codeproject.com/Articles/5320/A-CountDownTimer-inherited-from-System-Windows-For
Schöne Grüße
Oliver
- Bearbeitet Oliver Michalski Montag, 20. Februar 2012 13:28 typo
-
Hallo Tolots,
der Artikel ist zwar älter und der Code in C# aber totzdem:
A CountDownTimer inherited from System.Windows.Forms.Timer
http://www.codeproject.com/Articles/5320/A-CountDownTimer-inherited-from-System-Windows-For
Schöne Grüße
Oliver
Schade dass ich dein Link nicht benutzen konnte.
Ich kann die Sprache C# nicht.
Ich formuliere neu:
Ich brauche Hilfe bei einem Timer.
Ich möchte ihn so Programmieren dass er (z.B. nach einer Minute) dass Programm schließt nach der einen Minute.
Soll vom Benutzer nicht eingestellt werden können.
Microsoft Visual Basic 2010 Express
-
Also in VB
Public Class Form1 Public CD As Integer = 60 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Form2.Show() Me.Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Me.Timer1.Interval = 1000 Me.Label1.Text = CD ' kannste auch weglassen, dient nur der Ausgabe in einem Label um den Countdown darzustellen CD = CD - 1 If CD = 0 Then Form2.Close() Me.Timer1.Stop() End If End Sub End Class
Ob du wie in diesem Code Form2 extra aufrufst oder was auch immer dein Programm an der Stelle macht, ist dir überlassen.
Wichtig ist, dass du einen Start- und einen Kontrollwert angibst.
Um den Code zu verstehen, erzeuge eine völlig neue Anwendung bestehend aus zwei Forms. In Form1 packe ein Label1 und einen Timer1.Dann kopiere den kompletten obigen Code, doppelklicke auf Form1, markiere alles und ersetze es durch diesen Code.
Lass die Anwednung laufen und spiel etwas mit den Werten rum.
Viel Spaß.
Liebe Grüße Stefan | Cheers Stefan I'm using VB 2008 Express Be a good forum member - mark posts that contain the answers to your questions or those that are helpful c# in vb Translator: http://www.developerfusion.com/tools/convert/csharp-to-vb/
-
Funktioniert leider auch nicht.
Dass Programm hängt sich andauernd auf.
Ich möchte dass so hinkriegen:
Wenn ich auf den Close-Button klicke dann soll eine neue Form (in meinem Fall: Beenden-Screen) erscheinen.
Darauf soll kein Contdownangezeigt werden.
Nach ca. 1ner Minute soll dass komplette Programm beendet werden.
Verstanden?
Besser kann ich dass nicht erklären.
Microsoft Visual Basic 2010 Express
-
Tolots,
Stefan`s code funktioniert bei mir problemlos.
Mach es einfach so:
Platziere auf Deinem Beenden Screen eine Timer komponente. Im Form load Event startest Du dann den Timer und überprüfst so wie Stefan gezeigt hat wie oft ( bei z.B. Timer.Intervall=1000 = 1 sec. ) der Event ausgelöst wurde. Wenn dieser Wert erreicht ist, stoppe den Timer und rufe ME.close auf.
Start des Beenden Screen:
'Visual Basic 2008 - .net 3.5 - Any CPU
Private _BeendenScreen As BeendenScreen
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_BeendenScreen = New BeendenScreen(5)
_BeendenScreen.Show()
Me.Close()
End Sub
BeendenScreen:
'Visual Basic 2008 - .net 3.5 - Any CPU
Public Class BeendenScreen
Private WithEvents _Timer As Windows.Forms.Timer
Private _AnzeigeDauer As Integer
Public Sub New(ByVal AnzeigeDauer As Integer)
InitializeComponent()
_AnzeigeDauer = AnzeigeDauer
_Timer = New Windows.Forms.Timer
_Timer.Interval = 1000
End Sub
Private Sub BeendenScreen_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_Timer.Start()
End Sub
Private Sub _Timer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles _Timer.Tick
_Timer.Enabled = False
_AnzeigeDauer = _AnzeigeDauer - 1
If _AnzeigeDauer = 0 Then
Me.Close()
Else
_Timer.Enabled = True
End If
End Sub
End Class
Ja, da steht VB 2008, das macht aber nichts, funktioniert genauso unter VB 2010.Hannes
If you have got questions about this, just ask.
In a perfect world,
users would never enter data in the wrong form,
files they choose to open would always exist
and code would never have bugs.
C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/- Als Antwort markiert Tolots Montag, 20. Februar 2012 15:35
-
Tolots,
Stefan`s code funktioniert bei mir problemlos.
Mach es einfach so:
Platziere auf Deinem Beenden Screen eine Timer komponente. Im Form load Event startest Du dann den Timer und überprüfst so wie Stefan gezeigt hat wie oft ( bei z.B. Timer.Intervall=1000 = 1 sec. ) der Event ausgelöst wurde. Wenn dieser Wert erreicht ist, stoppe den Timer und rufe ME.close auf.
Start des Beenden Screen:
'Visual Basic 2008 - .net 3.5 - Any CPU
Private _BeendenScreen As BeendenScreen
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_BeendenScreen = New BeendenScreen(5)
_BeendenScreen.Show()
Me.Close()
End Sub
BeendenScreen:
'Visual Basic 2008 - .net 3.5 - Any CPU
Public Class BeendenScreen
Private WithEvents _Timer As Windows.Forms.Timer
Private _AnzeigeDauer As Integer
Public Sub New(ByVal AnzeigeDauer As Integer)
InitializeComponent()
_AnzeigeDauer = AnzeigeDauer
_Timer = New Windows.Forms.Timer
_Timer.Interval = 1000
End Sub
Private Sub BeendenScreen_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_Timer.Start()
End Sub
Private Sub _Timer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles _Timer.Tick
_Timer.Enabled = False
_AnzeigeDauer = _AnzeigeDauer - 1
If _AnzeigeDauer = 0 Then
Me.Close()
Else
_Timer.Enabled = True
End If
End Sub
End Class
Ja, da steht VB 2008, das macht aber nichts, funktioniert genauso unter VB 2010.
Hannes
If you have got questions about this, just ask.
In a perfect world,
users would never enter data in the wrong form,
files they choose to open would always exist
and code would never have bugs.
C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/Eine Frage noch.
Wie lange ist denn die anzeigedauer?
Ich verwende Microsoft Visual Basic 2010 Express. I`m using Microsoft Visual Basic 2010 Express edition.
-
In dem Start Beispiel ( erste code Schnipsel ) habe ich 5 -> 5 sekunden angegeben. Kannst Du ändern wie Du willst, ich wollte aber zum Testen keine 60 Sekunden warten ;-)
Hannes
If you have got questions about this, just ask.
In a perfect world,
users would never enter data in the wrong form,
files they choose to open would always exist
and code would never have bugs.
C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/ -
Ich muss zugeben, ich habe etwas Probleme damit was und wie du es schreibst.
Du meinst es sicher nicht böse, aber es kommt hier und auch in anderen Threads teilweise so rüber, als ob wir dazu da wären, dich mit Code zu versorgen und den auch so zu schreiben, dass du ihn einfach nur kopieren und einfügen brauchts.Dieses Forum stellt keinen technischen Support für ein Produkt dar sondern hier helfen sich sehr viele Anwender gegenseitig Probleme zu lösen.
Es werden Methoden und Wege aufgezeigt aber keine Endlösungen erarbeitet.Wenn du es nicht besser erklären kannst, poste einfach deinen Code.
Liebe Grüße Stefan | Cheers Stefan I'm using VB 2008 Express Be a good forum member - mark posts that contain the answers to your questions or those that are helpful c# in vb Translator: http://www.developerfusion.com/tools/convert/csharp-to-vb/
-
In dem Start Beispiel ( erste code Schnipsel ) habe ich 5 -> 5 sekunden angegeben. Kannst Du ändern wie Du willst, ich wollte aber zum Testen keine 60 Sekunden warten ;-
Danke für den Hinweis. :-)
Ich verwende Microsoft Visual Basic 2010 Express. I`m using Microsoft Visual Basic 2010 Express edition.
-
Hallo Tolots,
soll den in der einen Minute noch irgendwas passieren? Ansonsten kannst Du den Thread auch für eine Minute einschlafen lassen und dann das Programm beenden.
Schöne Grüße
Oliver
Nö.
In der Minute beendet dass Programm sich selbst.
Passt so.
Ich verwende Microsoft Visual Basic 2010 Express. I`m using Microsoft Visual Basic 2010 Express edition.
-
Hallo Stefan,
ich kann mich daran erinnern, dass Du zu Beginn deiner Posterkarriere 2009, auch nicht viel besser rüber gekommen bist. Also sei großzügig. Tolots ist erst seit 3 Wochen dabei.
Schöne Grüße
Oliver
Genau.
Programmiere auch seit, seit... 1.Jahr.
Versuche aber auch ein Paar Fragen zu beantworten.
Ich verwende Microsoft Visual Basic 2010 Express. I`m using Microsoft Visual Basic 2010 Express edition.