事件demo

 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 }
原文地址:https://www.cnblogs.com/drake/p/3210570.html