看完作者写的代码感觉非常烦琐,同时就如同作者所说还存在不足.利用C#的事件技术可以很好的解决上述问题.以下是实现的UML截图:

下面给出解决代码:


1

2

3

4



5

6

7



8

9



10

11

12

13

14

15



16

17

18

19



20

21

22



23

24

25

26

27



28

29

30

31

32

33

34

35

36

37

38

39

40

41

42



43


44

45

46

47

48



49

50

51



52

53

54

55

56

57

58

59

60



61


62

63

64

65



66

67



68

69

70

71

72

73

74

75

76

77



78

79

80

81

82

83

84



85

86


87

88

89



90

91



92

93

94

95

96

97

98

99

100



101

102

103

104

105

106
