Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Timer

Postades av 2004-12-06 13:10:05 - Ola Ljungcrantz, i forum vb.net, Tråden har 10 Kommentarer och lästs av 791 personer

Jag har en Timer och Label. Jag skulle vilja visa "aktuell tid" hos Timern i Labeln.
Hur gör man det?

mvh Ola


Svara

Sv: Timer

Postades av 2004-12-06 16:07:21 - Marcus Olsson

Exakt vad är du vill?
Anta att du har en timer på 5 sek, skulle du i en label vilja visa hur långt det är kvar för den timern innan den noll, eller?

Vad jag vet så finns det tyvärr ingen property på en timer som visar dess "nedräkningsstatus".

Däremot skulle du kunna använda dig av en timespan som du sätter till "nedräkningstiden" och använder en timer för att räkna ned den. Typ så här:

<code>

Dim ts As New TimeSpan(0, 0, 30) ' Sätt nedräkningstiden till 30 sekunder

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = ts.ToString
Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ts = ts.Subtract(New TimeSpan(0, 0, 0, 0, Timer1.Interval)) ' Räkna ned tiden lika mycket som timerns intervall
Label1.Text = ts.ToString
If ts.TotalMilliseconds = 0 Then ' Gör nåt när vi kommer till 0
Timer1.Enabled = False
MessageBox.Show("Tiden är ute")
End If
End Sub

</code>

/Marcus


Svara

Sv:Timer

Postades av 2004-12-06 16:44:45 - Patrik Löwendahl

Undvik att uppdatera controller från andra trådar än huvudtråden.

Läs: http://www.cshrp.net/content.aspx?showID=958


Svara

Sv: Timer

Postades av 2004-12-06 17:29:11 - Marcus Olsson

OK, hur borde en enkel timer-event se ut om man t.ex. vill uppdatera en label med aktuell tid en gång i sekunden (i VB.NET)?

/Marcus


Svara

Sv:Timer

Postades av 2004-12-06 19:11:40 - Andreas Håkansson


Marcus,

Läs tråden som Patrik hänvisade dig till. När du har förstått innebörden av den, samt lösningen på det problem som prestenteras så skall du göra följande. Du lägger till en <b>Timer</b> och sätter dess intervall till 1000ms (= 1s). Du lyssnar på <b>Tick</b> händelsen (utgår ifrån att du använder Timer klassen som finns i <b>System.Windows.Forms</b> namnrymnden). När denna triggas så sätter du (med hjälp av det Patrik hänvisade till) <b>Text</b> propertyn på din <b>Label</b> till <b>DateTime.Now.ToShortTimeString()</b>.

Hoppas det löser sig!


Svara

Sv: Timer

Postades av 2004-12-06 21:57:29 - Ola Ljungcrantz

Jag kanske skulle varit lite tydligare...

Om jag har en Timer med "Timer1.Interval = 15000" så vill jag ha en Label som hela tiden visar hur långt "räkningen" från noll mot 15000 har kommit.

Tänkte kanske att det fanns en bar lösning. En halvbra skulle vara att ha ytterligare en Timer med "Timer2.Interval = 1000" och en variabel som räknas upp med 1000 varje gång Timer2 körs....

Mvh Ola


Svara

Sv: Timer

Postades av 2004-12-07 10:39:04 - Marcus Olsson

Anders, Patrik,

I mitt kodexempel använde jag den timer som finns i System.Windows.Forms, om man läser i hjälpen för den timern så står det att den är optimerad för använding i Windows Forms applikationer.
Läs följande urklipp:

"Remarks
A Timer is used to raise an event at user-defined intervals. This Windows timer is designed for a single-threaded environment where UI threads are used to perform processing."

Hur tolkar man det? Kommer denna timers tick-event att köra på huvudtråden?

Jag testade att i tick-eventet kolla följande:
<code>
debug.writeline(Label1.InvokeRequired)
</code>
Den svarar med <b>false</b>, dvs att man inte behöver använda kontrollens invoke-metod.

Jag är inte ute efter tuppfäktning nu, utan bara att få 100% klarhet i ärendet.

/Marcus


Svara

Sv:Timer

Postades av 2004-12-07 10:47:02 - Andreas Håkansson

Timern körs i en seperat tråd från ditt GUI - då måste du använda synkroniserad invoke för att det ska fungera korrekt.


Svara

Sv: Timer

Postades av 2004-12-07 11:26:19 - Oskar Johansson

Om jag inte minns fel så körs System.Timers.Timer i egen tråd <b>och</b> kör eventet i egen tråd medan system.Windows.Forms.Timer också kör i egen tråd <b>men</b> kör sedan invoke till huvudtråden där eventet sedan körs?


Svara

Sv: Timer

Postades av 2004-12-07 11:49:15 - Marcus Olsson

Om det nu är så som du säger, varför returnerar då label1.invokerequired false?

/Marcus


Svara

Sv:Timer

Postades av 2004-12-07 11:52:00 - Andreas Håkansson

Tar man sig en närmare till på <b>System.Windows.Forms.Timer</b> så hittar man följande saker. Det första man hittar är deklarationen på själva handlern.

Private onTimer As EventHandler


Sen hittar vi deklarationen på händelsen

Public Event Tick As EventHandler


Tar vi oss sedan en titt på hur händelsen triggas ser vi följande

Protected Overridable Sub OnTick(ByVal e As EventArgs)
      If (Not Me.onTimer Is Nothing) Then
            Me.onTimer.Invoke(Me, e)
      End If
End Sub



Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 722
27 958
271 751
402
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies