第二篇
既然已经决定重做了
权限的问题最好还是放在第一个考虑的环节
可以在权限前调用 beginInitAcitonState();
可以在权限后调用 AfterInitAcitonState();
还可以
private void InitAcitonStateCollection()
{
beginInitAcitonState();
// do my self
AfterInitAcitonState();
}
1 private void C11020010_Load(object sender, EventArgs e)
2 {
3 InitAcitonStateCollection();
4 setAllControlColor(this);
5
6 }
7
8
9
10
11 private void setAllControlColor(Control Acontrol)
12 {
13 foreach (Control c in Acontrol.Controls)
14 {
15 c.BackColor = System.Drawing.Color.FromArgb(223, 232, 244);
16 if (c.HasChildren)
17 setAllControlColor(c);
18 }
19
20 }
21
22
23
24 private void InitAcitonStateCollection()
25 {
26 beginInitAcitonState();
27
28 //foreach (AcitonState state in (IEnumerator(of<AcitonState>)))
29 //{
30
31 //}
32
33 AfterInitAcitonState();
34
35 }
36
37 private void AfterInitAcitonState()
38 {
39 foreach (KeyValuePair<AcitonState, bool> akey in actions)
40 {
41 switch (akey.Key)
42 {
43 case AcitonState.Save :
44 Save.Enabled = akey.Value;
45 break;
46 case AcitonState.Add:
47 Add.Enabled = akey.Value;
48 break;
49 case AcitonState.Edit:
50 Edit.Enabled = akey.Value;
51 break;
52 case AcitonState.AddRow:
53 AddRow.Enabled = akey.Value;
54 break;
55 case AcitonState.DeleteRow:
56 DeleteRow.Enabled = akey.Value;
57 break;
58 case AcitonState.Cancel:
59 Cancel.Enabled = akey.Value;
60 break;
61 case AcitonState.Delete:
62 Delete.Enabled = akey.Value;
63 break;
64
65
66 case AcitonState.SearchSheet:
67 SearchSheet.Enabled = akey.Value;
68 break;
69 case AcitonState.FirstSheet:
70 FirstSheet.Enabled = akey.Value;
71 break;
72 case AcitonState.PriviewSheet:
73 PriviewSheet.Enabled = akey.Value;
74 break;
75 case AcitonState.NextSheet:
76 NextSheet.Enabled = akey.Value;
77 break;
78 case AcitonState.LastSheet:
79 LastSheet.Enabled = akey.Value;
80 break;
81
82
83 case AcitonState.Audit:
84 Audit.Enabled = akey.Value;
85 break;
86
87 }
88 }
89 }
90
91 private void beginInitAcitonState()
92 {
93 actions.Add(AcitonState.Init, true);
94 actions.Add(AcitonState.Save, true);
95 actions.Add(AcitonState.Add, true);
96 actions.Add(AcitonState.Edit, true);
97 actions.Add(AcitonState.AddRow, true);
98 actions.Add(AcitonState.DeleteRow, true);
99 actions.Add(AcitonState.Cancel, false);
100 actions.Add(AcitonState.Delete, true);
101
102 actions.Add(AcitonState.SearchSheet, true);
103 actions.Add(AcitonState.FirstSheet, true);
104 actions.Add(AcitonState.PriviewSheet, true);
105 actions.Add(AcitonState.NextSheet, true);
106 actions.Add(AcitonState.LastSheet, true);
107
108 actions.Add(AcitonState.Audit, true);
109 }
110
111
112
113 public Dictionary<AcitonState, bool> actions = new Dictionary<AcitonState, bool>();
114
115
116
117
118
119 private void Init_Click(object sender, EventArgs e)
120 {
121
122
123 UpdateAcitonState(AcitonState.Init);
124 }
125
126 private void Save_Click(object sender, EventArgs e)
127 {
128
129
130 UpdateAcitonState(AcitonState.Save);
131 }
132
133 private void Add_Click(object sender, EventArgs e)
134 {
135
136
137 UpdateAcitonState(AcitonState.Add);
138 }
139
140 private void Edit_Click(object sender, EventArgs e)
141 {
142
143 UpdateAcitonState(AcitonState.Edit);
144 }
145
146 private void AddRow_Click(object sender, EventArgs e)
147 {
148
149 UpdateAcitonState(AcitonState.AddRow);
150 }
151
152 private void DeleteRow_Click(object sender, EventArgs e)
153 {
154
155 UpdateAcitonState(AcitonState.DeleteRow);
156 }
157
158 private void Cancel_Click(object sender, EventArgs e)
159 {
160
161 UpdateAcitonState(AcitonState.Cancel);
162 }
163
164 private void Delete_Click(object sender, EventArgs e)
165 {
166
167 UpdateAcitonState(AcitonState.Delete);
168 }
169
170 private void SearchSheet_Click(object sender, EventArgs e)
171 {
172
173 UpdateAcitonState(AcitonState.SearchSheet);
174 }
175
176 private void FirstSheet_Click(object sender, EventArgs e)
177 {
178
179 UpdateAcitonState(AcitonState.FirstSheet);
180 }
181
182 private void PriviewSheet_Click(object sender, EventArgs e)
183 {
184 UpdateAcitonState(AcitonState.PriviewSheet);
185 }
186
187 private void NextSheet_Click(object sender, EventArgs e)
188 {
189 UpdateAcitonState(AcitonState.NextSheet);
190 }
191
192 private void LastSheet_Click(object sender, EventArgs e)
193 {
194 UpdateAcitonState(AcitonState.LastSheet);
195 }
196
197 private void Audit_Click(object sender, EventArgs e)
198 {
199 UpdateAcitonState(AcitonState.Audit);
200 }
201
202
203
204
205 private void UpdateAcitonState(AcitonState State)
206 {
207
208 }
209
210 }
2 {
3 InitAcitonStateCollection();
4 setAllControlColor(this);
5
6 }
7
8
9
10
11 private void setAllControlColor(Control Acontrol)
12 {
13 foreach (Control c in Acontrol.Controls)
14 {
15 c.BackColor = System.Drawing.Color.FromArgb(223, 232, 244);
16 if (c.HasChildren)
17 setAllControlColor(c);
18 }
19
20 }
21
22
23
24 private void InitAcitonStateCollection()
25 {
26 beginInitAcitonState();
27
28 //foreach (AcitonState state in (IEnumerator(of<AcitonState>)))
29 //{
30
31 //}
32
33 AfterInitAcitonState();
34
35 }
36
37 private void AfterInitAcitonState()
38 {
39 foreach (KeyValuePair<AcitonState, bool> akey in actions)
40 {
41 switch (akey.Key)
42 {
43 case AcitonState.Save :
44 Save.Enabled = akey.Value;
45 break;
46 case AcitonState.Add:
47 Add.Enabled = akey.Value;
48 break;
49 case AcitonState.Edit:
50 Edit.Enabled = akey.Value;
51 break;
52 case AcitonState.AddRow:
53 AddRow.Enabled = akey.Value;
54 break;
55 case AcitonState.DeleteRow:
56 DeleteRow.Enabled = akey.Value;
57 break;
58 case AcitonState.Cancel:
59 Cancel.Enabled = akey.Value;
60 break;
61 case AcitonState.Delete:
62 Delete.Enabled = akey.Value;
63 break;
64
65
66 case AcitonState.SearchSheet:
67 SearchSheet.Enabled = akey.Value;
68 break;
69 case AcitonState.FirstSheet:
70 FirstSheet.Enabled = akey.Value;
71 break;
72 case AcitonState.PriviewSheet:
73 PriviewSheet.Enabled = akey.Value;
74 break;
75 case AcitonState.NextSheet:
76 NextSheet.Enabled = akey.Value;
77 break;
78 case AcitonState.LastSheet:
79 LastSheet.Enabled = akey.Value;
80 break;
81
82
83 case AcitonState.Audit:
84 Audit.Enabled = akey.Value;
85 break;
86
87 }
88 }
89 }
90
91 private void beginInitAcitonState()
92 {
93 actions.Add(AcitonState.Init, true);
94 actions.Add(AcitonState.Save, true);
95 actions.Add(AcitonState.Add, true);
96 actions.Add(AcitonState.Edit, true);
97 actions.Add(AcitonState.AddRow, true);
98 actions.Add(AcitonState.DeleteRow, true);
99 actions.Add(AcitonState.Cancel, false);
100 actions.Add(AcitonState.Delete, true);
101
102 actions.Add(AcitonState.SearchSheet, true);
103 actions.Add(AcitonState.FirstSheet, true);
104 actions.Add(AcitonState.PriviewSheet, true);
105 actions.Add(AcitonState.NextSheet, true);
106 actions.Add(AcitonState.LastSheet, true);
107
108 actions.Add(AcitonState.Audit, true);
109 }
110
111
112
113 public Dictionary<AcitonState, bool> actions = new Dictionary<AcitonState, bool>();
114
115
116
117
118
119 private void Init_Click(object sender, EventArgs e)
120 {
121
122
123 UpdateAcitonState(AcitonState.Init);
124 }
125
126 private void Save_Click(object sender, EventArgs e)
127 {
128
129
130 UpdateAcitonState(AcitonState.Save);
131 }
132
133 private void Add_Click(object sender, EventArgs e)
134 {
135
136
137 UpdateAcitonState(AcitonState.Add);
138 }
139
140 private void Edit_Click(object sender, EventArgs e)
141 {
142
143 UpdateAcitonState(AcitonState.Edit);
144 }
145
146 private void AddRow_Click(object sender, EventArgs e)
147 {
148
149 UpdateAcitonState(AcitonState.AddRow);
150 }
151
152 private void DeleteRow_Click(object sender, EventArgs e)
153 {
154
155 UpdateAcitonState(AcitonState.DeleteRow);
156 }
157
158 private void Cancel_Click(object sender, EventArgs e)
159 {
160
161 UpdateAcitonState(AcitonState.Cancel);
162 }
163
164 private void Delete_Click(object sender, EventArgs e)
165 {
166
167 UpdateAcitonState(AcitonState.Delete);
168 }
169
170 private void SearchSheet_Click(object sender, EventArgs e)
171 {
172
173 UpdateAcitonState(AcitonState.SearchSheet);
174 }
175
176 private void FirstSheet_Click(object sender, EventArgs e)
177 {
178
179 UpdateAcitonState(AcitonState.FirstSheet);
180 }
181
182 private void PriviewSheet_Click(object sender, EventArgs e)
183 {
184 UpdateAcitonState(AcitonState.PriviewSheet);
185 }
186
187 private void NextSheet_Click(object sender, EventArgs e)
188 {
189 UpdateAcitonState(AcitonState.NextSheet);
190 }
191
192 private void LastSheet_Click(object sender, EventArgs e)
193 {
194 UpdateAcitonState(AcitonState.LastSheet);
195 }
196
197 private void Audit_Click(object sender, EventArgs e)
198 {
199 UpdateAcitonState(AcitonState.Audit);
200 }
201
202
203
204
205 private void UpdateAcitonState(AcitonState State)
206 {
207
208 }
209
210 }