public static void SetPermissions(this Form form, Func<Form, IDictionary<string,bool>> getPermissionsHandler) |
07 | { |
08 | Type t = form.GetType(); |
09 | FieldInfo[] fs = t.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static); |
10 | IDictionary<string,bool> permissions = getPermissionsHandler(form); |
11 | foreach (FieldInfo fin fs) |
12 | { |
13 | dynamic component = f.GetValue(form); |
14 | if (componentis System.ComponentModel.Component && permissions.ContainsKey(f.Name)) |
15 | { |
16 | try |
17 | { |
18 | component.Enabled = permissions[f.Name]; |
19 | } |
20 | catch { } |
21 | } |
22 | } |
23 | } |