在做用户权限设置功能时,需要做一个动态生成权限列表的功能。(笔记、分享)

   //1、清空权限控件组的默认控件
panelPermissions.Controls.Clear();
_groupBoxList = new List<GroupBox>();
//2、遍历权限组数据,动态生成权限控件组
var groupBoxNameTemp = "gBox";
var checkBoxNameTemp = "ck";
var lastGroupBoxHeight = ;
for (var i = ; i < permissions.Count; i++)
{
//创建权限组容器
GroupBox gbox = new GroupBox()
{
Name = groupBoxNameTemp + i,
Text = permissions[i].GroupName,
Width = ,
Height = (permissions[i].Permissions.Count / + ) * ,
Location = new Point(, lastGroupBoxHeight + i * )
};
lastGroupBoxHeight = lastGroupBoxHeight + gbox.Height;
//将权限组容器添加到界面上
panelPermissions.Controls.Add(gbox);
//创建权限组容器中的CheckBox
var pRowIndex = ;
var pColIndex = ;
for (var c = ; c < permissions[i].Permissions.Count; c++)
{
CheckBox checkBox = new CheckBox()
{
Name = checkBoxNameTemp + c,
Text = permissions[i].Permissions[c].PermissionName,
Tag = permissions[i].Permissions[c].Id
};
pRowIndex = c / ;//行号
pColIndex = c % ;//列号
checkBox.Location = new Point( + pColIndex * , + pRowIndex * );
checkBox.Enabled = _currentUserHasPermissions.Contains(permissions[i].Permissions[c].Id);
gbox.Controls.Add(checkBox);
}
_groupBoxList.Add(gbox);
}

代码场景解释: 1、权限是有分组的,每一组权限放在一个GroupBox里面。2、每一组权限每行显示3个权限项(

pRowIndex = c / 4;//行号
pColIndex = c % 4;//列号

用来换行的。

)。

动态生成CheckBox(Winform程序)的更多相关文章

  1. ExtJs 3.0 动态生成 CheckBox

    在开发过程中,往往需要利用数据动态生成Checkbox.如权限节点.考试答案,调查选项等等.在Extjs中,有两种方法来获取后台数据,一是Ext.Ajax()方法,第二种是利用 Store,store ...

  2. 使用C#动态生成Word文档/Excel文档的程序测试通过后,部署到IIS服务器上,不能正常使用的问题解决方案

    使用C#动态生成Word文档/Excel文档的程序功能调试.测试通过后,部署到服务器上,不能正常使用的问题解决方案: 原因: 可能asp.net程序或iis访问excel组件时权限不够(Ps:Syst ...

  3. jquery控制动态生成的gridview中多列checkbox的全选反选及自动判断是否全选状态

    动态生成的Gridview的前台html代码如下:     <table class="usertableborder" cellspacing="0" ...

  4. 微信小程序动态生成保存二维码

    起源:最近小程序需要涉及到一些推广方面的功能,所以要写一个动态生成二维码用户进行下载分享,写完之后受益良多,特此来分享一下: 一.微信小程序动态生成保存二维码 wxml: <view class ...

  5. 动态生成ABAP程序-资料

    参考程序: Tcode ABAPdocu--> BC - ABAP Programming--> The ABAP Programming Language--> Special T ...

  6. ABAP动态生成经典应用之Dynamic SQL Excute 程序

    [转自http://blog.csdn.net/mysingle/article/details/678598]开发说明:在SAP的系统维护过程中,有时我们需要修改一些Table中的数据,可是很多Ta ...

  7. Delphi 如何在程序中执行动态生成的Delphi代码

    如何在程序中执行动态生成的Delphi代码 经常发现有人提这类问题,或者提问内容最后归结成这种问题 前些阵子有位高手写了一个“执行动态生成的代码”,这是真正的高手,我没那种功力,我只会投机取巧. 这里 ...

  8. 如何在程序中执行动态生成的Delphi代码

    如何在程序中执行动态生成的Delphi代码 经常发现有人提这类问题,或者提问内容最后归结成这种问题 前些阵子有位高手写了一个“执行动态生成的代码”,这是真正的高手,我没那种功力,我只会投机取巧. 这里 ...

  9. winform WebBrowser控件中,cs后台代码执行动态生成的js

    很多文章都是好介绍C# 后台cs和js如何交互,cs调用js方法(js方法必须是页面上存在的,已经定义好的),js调用cs方法, 但如果想用cs里面执行动态生成的js代码,如何实现呢? 思路大致是这样 ...

随机推荐

  1. Scala_Trait特征

    1,scala提供的“特征”可以同时拥有抽象方法和具体方法,一个类可以拥有多个特质 2,类可以通过“extends”关键字继承trait,继承trait后必须实现trait中的所有抽象方法,而不是用 ...

  2. 小白日记53:kali渗透测试之Web渗透-SSL、TLS中间人攻击(SSLsplit,Mitmproxy,SSLstrip),拒绝服务攻击

    SSL.TLS中间人攻击 SSL中间人攻击 攻击者位于客户端和服务器通信链路中 利用方法: ARP地址欺骗 修改DHCP服务器 (存在就近原则) 手动修改网关 修改DNS设置 修改HOSTS文件[高于 ...

  3. 北京Uber优步司机奖励政策(4月23日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  4. 关于DP和背包

    听说过动态规划(DP)的同学应该都知道有背包问题的存在. 首先我们来了解一下动态规划 基本思想: 动态规划算法通常用于求解具有某种最优性质的问题. 在这类问题中, 可能会有很多可行解.每一个解都对应于 ...

  5. PKUWC2019题解

    这里其实只放一下题面和一些提示,大家评一评有几道题可做 题面全部蒯自xzz的博客 Day 1 T1 题面 一个有向图,每一条边可能存在也可能不存在,求拓扑序列数量的期望乘\(2^m\) 没有重边自环, ...

  6. 400 bad Request: JackSon将json串转成List<Object>,异常com.fasterxml.jackson.databind.JsonMappingException

    最近遇到的400, 以前总以为 400 就是参数不匹配造成的,直到今天遇到这个问题 控制台报错如下:  com.fasterxml.jackson.databind.JsonMappingExcept ...

  7. Mac下 通过 VMware Fusion 配置 windows 虚拟机的详细步骤

    内容中包含 base64string 图片造成字符过多,拒绝显示

  8. 洛咕 P2447 [SDOI2010]外星千足虫

    一开始以为是异或高斯消元,实际上是简单线性基. 直接往线性基里插入,直到线性基满了就解出来了. // luogu-judger-enable-o2 #include<bits/stdc++.h& ...

  9. iptables 生产环境下基础设置

    iptables 生产环境下基础设置 生成环境需求:防火墙需要让内网的Ip全部通过,外网IP添加到白名单,其他一切拒绝.安装在linux系统中安装yum install iptables-servic ...

  10. HT7A6312—— 离线开关电源小功率初级转换开关IC 记录总结

    1. 芯片特性 a. 固定60KHz开关频率: b. 宽Vcc输出电压范围:9V - 38V: c. 宽交流输入电压范围:85Vac - 265Vac: d. 电流模式PWM控制: e. 带迟滞的辅助 ...