elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Temporizador C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Temporizador C#  (Leído 5,895 veces)
Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Temporizador C#
« en: 23 Diciembre 2015, 00:16 am »

Hola:

En el formulario tengo un label y dos buttons. En el label muestra 00:00:00, que son horas, minutos, segundos.

El primer botón empieza llamado Start el contador, el otro botón llamado Stop es detener el temporizador y se pone a 00:00:00 y se queda detenido.

¿Cómo se hace en C#?

Por ahora he hecho esto.
Código
  1. public class form1{
  2.  
  3.   private Timer _timer = null;
  4.  
  5.   public void Form_Load(...){
  6.  
  7.        _timer= new Timer();
  8.  
  9.        _timer.Interval = 1000; // 1seg
  10.  
  11.        _timer.tick += timer_Tick;
  12.  
  13.   }
  14.  
  15.   private void btnIniciar_Click(...){
  16.  
  17.      _timer.Start();
  18.  
  19.  }
  20.  
  21.   private void btnIniciar_Click(...){
  22.  
  23.     _timer.Stop();
  24.  
  25.  }
  26.  
  27.   private void timer_Tick(...){
  28.  
  29.        label.Text = DateTime.Now.ToString("HH:mm:ss")
  30.  
  31.  }
  32.  
  33. }

La salida muestra la hora, quiero que muestre 00:00:00 cuando está en Stop, que empieze a contar el tiempo, cuando le de desconectar, se pone a 00:00:00. El problema que me muestra la hora actual, y no deseo eso.

Saludos.


« Última modificación: 23 Diciembre 2015, 00:30 am por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Temporizador C#
« Respuesta #1 en: 23 Diciembre 2015, 00:46 am »

Un Timer no es un "cronómetro" con el que medir intervalos de tiempo, y, aunque si que se puede utilizar con dicha finalidad, resultaría muy ineficiente en la medida.

Solución:
Utiliza la class StopWatch para medir, y el Timer para notificar del transcurso actual del StopWatch.

Saludos


En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Temporizador C#
« Respuesta #2 en: 23 Diciembre 2015, 06:26 am »

Hola:

Parece más complicado de lo que creía. Tengo que usar 16 temporizadores que al activar uno de ellos empieza por 00:00:00 (HH:MM:SS), y le doy el otro botón parar, se detiene y se pone a 00:00:00 de nuevo.

Por ahora pruebo con dos botones y un contador, lo llamo contador o temporizador o cronómetro para llamarlo de alguna manera.

DEja ver si me sale, luego aviso.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Temporizador C#
« Respuesta #3 en: 23 Diciembre 2015, 06:42 am »

Parece más complicado de lo que creía.

Es algo facil, mira un ejemplo:

Vb.Net:
Código
  1. Public NotInheritable Class Form1 : Inherits Form
  2.  
  3.    Private stopwatchs As Stopwatch() = Enumerable.Repeat(New Stopwatch, 15).ToArray
  4.    Friend Timer1 As New Windows.Forms.Timer With {.Interval = 1000, .Enabled = False}
  5.  
  6.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  7.        AddHandler Me.Timer1.Tick, AddressOf Timer1_Tick
  8.    End Sub
  9.  
  10.    Private Sub Button1_Click() Handles Button1.Click
  11.  
  12.        ' Iniciar stopwatchs...
  13.        For Each stw As Stopwatch In Me.stopwatchs
  14.            stw.Start()
  15.        Next stw
  16.  
  17.        Me.Timer1.Enabled = True
  18.        Me.Timer1.Start()
  19.  
  20.    End Sub
  21.  
  22.    Private Sub Button2_Click() Handles Button2.Click
  23.  
  24.        ' Detener stopwatchs...
  25.        For Each stw As Stopwatch In Me.stopwatchs
  26.            stw.Stop()
  27.        Next stw
  28.  
  29.        Me.Timer1.Stop()
  30.        Me.Timer1.Enabled = False
  31.  
  32.    End Sub
  33.  
  34.    Private Sub Timer1_Tick(sender As Object, e As EventArgs)
  35.  
  36.        For Each stw As Stopwatch In Me.stopwatchs
  37.            Console.WriteLine(stw.Elapsed.ToString)
  38.        Next stw
  39.  
  40.    End Sub
  41.  
  42. End Class

C#:
Código
  1. using Microsoft.VisualBasic;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Diagnostics;
  7. public sealed class Form1 : Form
  8. {
  9.  
  10. private Stopwatch[] stopwatchs = Enumerable.Repeat(new Stopwatch(), 15).ToArray;
  11. internal Windows.Forms.Timer Timer1 = new Windows.Forms.Timer {
  12. Interval = 1000,
  13. Enabled = false
  14.  
  15. };
  16. private void Form1_Load(object sender, EventArgs e)
  17. {
  18. this.Timer1.Tick += Timer1_Tick;
  19. }
  20.  
  21.  
  22. private void Button1_Click()
  23. {
  24. // Iniciar stopwatchs...
  25. foreach (Stopwatch stw in this.stopwatchs) {
  26. stw.Start();
  27. }
  28.  
  29. this.Timer1.Enabled = true;
  30. this.Timer1.Start();
  31.  
  32. }
  33.  
  34.  
  35. private void Button2_Click()
  36. {
  37. // Detener stopwatchs...
  38. foreach (Stopwatch stw in this.stopwatchs) {
  39. stw.Stop();
  40. }
  41.  
  42. this.Timer1.Stop();
  43. this.Timer1.Enabled = false;
  44.  
  45. }
  46.  
  47.  
  48. private void Timer1_Tick(object sender, EventArgs e)
  49. {
  50. foreach (Stopwatch stw in this.stopwatchs) {
  51. Console.WriteLine(stw.Elapsed.ToString);
  52. }
  53.  
  54. }
  55. public Form1()
  56. {
  57. Load += Form1_Load;
  58. }
  59.  
  60. }
  61.  
  62. //=======================================================
  63. //Service provided by Telerik (www.telerik.com)
  64. //=======================================================
  65.  
En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Temporizador C#
« Respuesta #4 en: 23 Diciembre 2015, 09:55 am »

Gracias.

Por lo que veo, hay que usar un timer si o si. En mi caso 16 timer, ejejjeje, y que sea indepentiende cada uno.

Sigo investigadno y me fijaré en el fondo tu código.

;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Temporizador
Programación C/C++
Bledniss 4 4,931 Último mensaje 29 Abril 2011, 03:39 am
por Destro-
Temporizador en C
Programación C/C++
PeKiN 2 5,436 Último mensaje 9 Junio 2011, 21:51 pm
por PeKiN
temporizador
PHP
kakashi20 1 2,803 Último mensaje 15 Marzo 2012, 19:31 pm
por #!drvy
Temporizador en C
Programación C/C++
Duning 3 10,942 Último mensaje 18 Noviembre 2013, 19:44 pm
por tutospaindani
temporizador de teclas en bat
Scripting
por_cel 2 5,246 Último mensaje 28 Octubre 2017, 23:03 pm
por por_cel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines