public class Time
{
//Denne klassen kan du test som følger fra et annet sted..
//private void simpleButton2_Click(object sender, EventArgs e)
//{
// Time t = new Time();
// t.TimeHasChanged += t_TimeHasChanged;
// t.ChangeTime();
//}
//void t_TimeHasChanged(object sender, TimeHasChangedEventArgs e)
//{
// MessageBox.Show(e.SomeProperty);
//}
//Delegaten
public delegate void TimeHasChangedEventHandler(object sender, TimeHasChangedEventArgs e);
//Eventet
public event TimeHasChangedEventHandler TimeHasChanged;
// Metoden man benytter for å raise eventet
protected virtual void OnTimeHasChanged(TimeHasChangedEventArgs e)
{
if (TimeHasChanged!=null)
{
//Invoke delegates
TimeHasChanged(this, e);
}
}
//En testmetode for å kunne raise eventet.
//Vanligvis vil man raise eventet på de stedene man måtte ønske
public void ChangeTime()
{
this.OnTimeHasChanged(new TimeHasChangedEventArgs() { SomeProperty = "Dette er en test" });
}
}
//EventArgs klassen. Denne vil du normalt utstyre med de properties som du har behov for.
//Dersom du ikke har behov for å sende spesielle data rundt omkring så kan du bruke EventArgs direkte
//og ikke gå via en egen klasse som arver EventArgs
public class TimeHasChangedEventArgs : EventArgs
{
public string SomeProperty { get; set; }
}
Advertisement