Preferisco non entrare nel merito del tuo programma, anche perchè mi sono accorto che è in C#...io conosco vb.net...
Comunque, per:
>Le "condizioni" che attivano i controllori sono riconducibili ad un' evento?
intendevo chiederti se hai già scritto il codice che verifica le condizioni per avviare il timer/temporizzatore, da quanto ho capito si.
Quindi, penso, puoi creare un Timer personalizzato o usercontrol, in pratica una classe derivata da Timer.
L' esempio sotto è in vb ma penso sia chiaro il concetto di base.
Al Timer di "base" ho aggiunto la "proprietà" 'limite', l' evento 'limite_raggiunto' e una variabile 'contatore'.
Per avviare il timer, ad esempio, da form con il click di un button:
Private Sub Button1_Click() Handles Button1.Click
Mio_timer1.Interval = 1000
Mio_timer1.limite = 10
Mio_timer1.Start()
End Sub
dove 'interval' è l' intervallo in millisecondi e 'limite' è il valore da confrontare con quello di 'contatore'.
La classe dell usercontrol:
Public Class mio_timer
Inherits Timer
Private limite_1 As Integer
Private contatore As Integer
Property limite() As Integer
Get
Return limite_1
End Get
Set(ByVal Value As Integer)
limite_1 = Value
End Set
End Property
Private Sub me_tick() Handles Me.Tick
contatore = contatore + 1
If contatore = limite_1 Then
contatore = 0
RaiseEvent limite_raggiunto()
End If
End Sub
Public Event limite_raggiunto()
End Class
All' evento 'Tick' 'contatore' viene incrementato di 1 e se l' IF è True il contatore si azzera e si scatena l' evento 'limite_raggiunto'.
In pratica ogni dieci secondi si avvia l' evento 'limite_raggiunto' che può essere intercettato come qualsiasi altro "evento":
Private Sub fai_questo() Handles Mio_timer1.limite_raggiunto
End Sub
Ti serve qualcosa del genere?