[Risolto] Azioni a meno 10 minuti dalla fine di un Timer

di il
6 risposte

[Risolto] Azioni a meno 10 minuti dalla fine di un Timer

Salve ragazzi,
ho un programmino c# (fatto con Visual Studio 2015) con un timer.

Al termine del timer (2 ore) fa delle cose.. e le fa, quindi OK.

Adesso volevo provare ad inserire una icona nelle notifiche che prima che scada il tempo (diciamo 10 minuti prima) mi faccia vedere un balloon con un messaggio ("mancano 10 minuti ..").

Cosa rapida: inserisco un altro timer che parte in contemporanea col primo, ma che dura 10 minuti meno.. ma così non ho imparato nulla..

Oppure?
Ho cercato in rete ma non mi viene in mente nulla..

Grazie

6 Risposte

  • Re: [Risolto] Azioni a meno 10 minuti dalla fine di un Timer

    Mi pare abbastanza semplice:
    tu hai un'orario di avvio e la durata (2 ore)
    leggi l'orario corrente (all'interno del Timer) e lo confronti con quello di avvio.
    Quando mancano 10 minuti mostri il popup.

  • Re: [Risolto] Azioni a meno 10 minuti dalla fine di un Timer

    Quindi non c'è modo di leggere direttamente il timer?
    tipo se il timer di chiama timer1
    int tempoMancante= timer1.Convertitore;
    if (tempoMancante == 600000)
    {
         //mostra popup;
    }
    Grazie
  • Re: [Risolto] Azioni a meno 10 minuti dalla fine di un Timer

    Cosa vuol dire:
    Quindi non c'è modo di leggere direttamente il timer?
    Spiegati cosa intendi...
  • Re: [Risolto] Azioni a meno 10 minuti dalla fine di un Timer

    gibra ha scritto:


    Cosa vuol dire:
    Quindi non c'è modo di leggere direttamente il timer?
    Spiegati cosa intendi...
    Quello che ho fatto:
    Allora ho trascinato sul form un Timer, e in automatico Visula Studio lo chiama timer1
    Imposto il tempo a 2h(7200000) e Enable su false.
    Alla pressione di un Button, tra le varie cose abiliti timer1 (una cosa del tipo):
    timer1.Enabled=true;

    Quello che voglio fare:
    Adesso vorrei sapere quanto vale timer1, cioè quanti secondi sono passati e metterli in una variabile, possibilmente int. In questo modo posso mettere da qualche parte un codice che dice pressapoco così:

    "Se timer1 == n secondi (se sono passati 1h:50min) fammi vedere un balloon nella area delle notifiche", cioè:
    if (valore_di_timer1 == 6600000) 
    {
    NotifyIcon1.ShowBalloonTip(...)
    }
    Il pezzo che mi manca è appunto come leggere direttamente timer1.. quindi una cosa tipo:
    valore_di_timer1 = timer1.???
    Spero di essere stato un pò più chiaro..

    Grazie
  • Re: [Risolto] Azioni a meno 10 minuti dalla fine di un Timer

    Imposto il tempo a 2h(7200000)
    Per tempo intendi la proprietà Interval ?
    Se sì, perché lo imposti a 7200000 (2 ore)?
    In questo modo che il codice dell'evento Tick nel Timer sarà eseguito OGNI 2 ore, quindi non potrai mai controllare prima quanti minuti mancano.

    Invece di 2 ore dovresti impostare un multiplo in base a quando vuoi fare il controllo, es. ogni 10 minuti.
    - Crei una variabile a livello di form
    - la incrementi nel Tick del Timer
    - calcoli il tempo trascorso e se è quello che vuoi tu mostri il popup.

    Ad esempio, mettiamo che ho un timer impostato a Interval = 6000 (ogni secondo) e dopo 30 secondi voglio mostrare un messaggio e fermare il Timer. Una cosa del genere:
        
           static int conta = 1;
    
           private void timer1_Tick(object sender, EventArgs e)
            {
                conta += 1;
                if (conta == 30)
                    {
                    MessageBox.Show("Sono passati 30 secondi.");  
                    timer1.Stop();
                    }
            }
    
    Ti suggerisco di usare i metodi Start() e Stop() per avviare/fermare il Timer.
    E ricorda sempre di fermarlo prima di scaricare il form.

  • Re: [Risolto] Azioni a meno 10 minuti dalla fine di un Timer

    gibra ha scritto:


    Imposto il tempo a 2h(7200000)
    Ti suggerisco di usare i metodi Start() e Stop() per avviare/fermare il Timer.
    E ricorda sempre di fermarlo prima di scaricare il form.
    Grazie della risposta..

    Leggendo in rete ho visto che il metodo start()/stop() sono uguali a enabled=true/false.. confermi o cambia qualcosa? (io uso timer1.enabled=true per farlo partire, e timer1.Stop() per fermarlo.. così non faccio torto a nessuno )

    Così intendi quando dici di "scaricare il form".. quando lo chiudo? In realtà il mio programma è fisso e non si deve/può chiudere.. deve restare sempre aperto..
Devi accedere o registrarti per scrivere nel forum
6 risposte