2009-07-17 19 views
9

Quiero agregar un temporizador en lugar de una cuenta regresiva que se inicia automáticamente cuando se carga el formulario . El tiempo de inicio debe ser de 45 minutos y una vez que termina, es decir, al llegar a 0 minutos, el formulario debe finalizar con un mensaje que se muestra. ¿Cómo puedo hacer esto?Agregar temporizador a una aplicación Windows Forms

Idioma: preferiblemente C#.

+2

¿qué tienes hasta ahora? –

+0

Personalmente, disfruto de poder ayudar con la tarea. La palabra clave es * ayuda *. Entonces, ¿por qué estamos * haciendo * la tarea de alguien sin algún intento razonable de mostrarnos un esfuerzo? – IAbstract

Respuesta

32

poco más de detalle:

private void Form1_Load(object sender, EventArgs e) 
    { 
     Timer MyTimer = new Timer(); 
     MyTimer.Interval = (45 * 60 * 1000); // 45 mins 
     MyTimer.Tick += new EventHandler(MyTimer_Tick); 
     MyTimer.Start(); 
    } 

    private void MyTimer_Tick(object sender, EventArgs e) 
    { 
     MessageBox.Show("The form will now be closed.", "Time Elapsed"); 
     this.Close(); 
    } 
+0

hey bro thanx mucho ... funcionó .... en realidad estoy más fresco en el progreso así que realmente agradecería si me explicaras cómo funciona.especialmente estas dos líneas: MyTimer.Tick + = new EventHandler (MyTimer_Tick) ; MyTimer.Start(); y por qué 1000 ?? es decir, en 45 * 60 * 1000 .... y quiero mostrar la pantalla de tiempo (cuenta atrás) en una etiqueta o algo así como dat en el formulario ... thanx – knowledgehunter

+0

MyTimer.Tick + = nuevo EventHandler (MyTimer_Tick); El temporizador tiene un evento llamado Tick cuando el intervalo establecido transcurre. En este caso, estamos diciendo que queremos invocar el método MyTimer_Tick cuando se produce el evento tick. MyTimer.Interval = (45 * 60 * 1000); El intervalo del temporizador es en milisegundos y, por lo tanto, utilicé un cálculo en lugar de solo calcular la respuesta y ajustar el valor. Creo que esto hace que sea un poco más fácil de entender. – Tim

+0

gracias ... lo entiendo ... bt wat acerca de mostrar la cuenta atrás en el formulario ?? – knowledgehunter

1

Algo así en tu formulario principal. Haga doble clic en el formulario en el editor visual para crear el evento de carga de formulario.

Timer Clock=new Timer(); 
Clock.Interval=2700000; // not sure if this length of time will work 
Clock.Start(); 
Clock.Tick+=new EventHandler(Timer_Tick); 

A continuación, agregue un controlador de eventos para hacer algo cuando el temporizador se dispare.

public void Timer_Tick(object sender,EventArgs eArgs) 
    { 
    if(sender==Clock) 
    { 
     // do something here  
    } 
    } 
+0

gracias ... funcionó ... pero ¿cómo visualizo la cuenta regresiva en el formulario? – knowledgehunter

-3

Descargar http://download.cnet.com/Free-Desktop-Timer/3000-2350_4-75415517.html

A continuación, añadir un botón o algo en la forma y en el interior de su caso, basta con abrir esta aplicación es decir:

{

Process.Start (@ "C: \ Archivos de programa (x86)) \ Free Desktop Timer \ DesktopTimer ");

}

+2

Esta es una solución terrible ... descarga un temporizador de terceros, pffft. ¿Por qué no usarías el control Timer estándar? ¿Eres el autor de este componente? –

+0

Soy un principiante ... Pero en realidad, ¿cómo es posible mostrar el control del temporizador durante un tiempo de ejecución? al igual que el temporizador de terceros ... por favor responda si lo sabe .. –

+0

Private Sub timer1_Tick (remitente como objeto, e como EventArgs) Dim diff como New TimeSpan() diff = DateTime.Now.Subtract (startTime) lblTime.Text = diff .Hours & ":" & diff.Minutes.ToString ("00") & ":" & diff.Seconds.ToString ("00") lblTime.Invalidate() End Sub –

Cuestiones relacionadas