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 | } |
本文介绍了一个用于设置窗体中各个组件权限的方法。该方法通过反射获取窗体的所有字段,并使用提供的权限字典来动态地启用或禁用相应组件。
681

被折叠的 条评论
为什么被折叠?



