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 f in fs) |
12 | { |
13 | dynamic component = f.GetValue(form); |
14 | if (component is System.ComponentModel.Component && permissions.ContainsKey(f.Name)) |
15 | { |
16 | try |
17 | { |
18 | component.Enabled = permissions[f.Name]; |
19 | } |
20 | catch { } |
21 | } |
22 | } |
23 | } |