1 delegate void MoveEventHandle(object source,MoveEventArgs e); 2 public class MoveEventArgs:EventArgs 3 { 4 public int newPosition; 5 public bool cancel; 6 public MoveEventArgs(int newposition) 7 { 8 this.newPosition=newposition; 9 } 10 } 11 class Slider 12 { 13 int position; 14 public event MoveEventHandle Move; 15 public int Position 16 { 17 get 18 { 19 return position; 20 } 21 set 22 { 23 if(position!=value) 24 { 25 if(Move!=null) 26 { 27 MoveEventArgs args=new MoveEventArgs(value); 28 Move(this,args); 29 if(args.cancel) 30 return; 31 } 32 position=value; 33 } 34 } 35 } 36 } 37 class Form 38 { 39 static void Main() 40 { 41 Slider slider=new Slider(); 42 slider.Move+=new MoveEventHandle(slider_Move); 43 slider.Position=20; 44 slider.Position=60; 45 } 46 static void slider_Move(object source,MoveEventArgs e) 47 { 48 if(e.newPosition<50) 49 console.writeline("OK"); 50 else 51 { 52 e.Cancle=true; 53 console.writeline("Can't go that higjh"); 54 } 55 } 56 }