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

   //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. Java基础加强——动态代理

    代理模式: 为其他对象提供一种代理以控制对这个对象的访问. 代理模式主要分为两类: 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译.在程序运行前,代理类的.class文件就已经存在了.  ...

  2. JavaWeb基础—JSP

    一.什么是JSP JSP 全称是 Java Server Pages,是一种开发动态web资源的技术 在原HTML上添加JAVA脚本(灵魂工程师,为页面添加灵魂),可以说 jsp = html + j ...

  3. # 2017-2018-1 20155302 课下实践IPC及课上补充

    课上实践补交 题目二要求: 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep -r的使用 伪代码 产品代码 mystate.c,提交码云链接 测试代码,m ...

  4. iOS中开源框架GPUImage的使用之生成libGPUImage.a文件和创建工程(一)

    一.下载GPUImage (1)下载地址:https://github.com/BradLarson/GPUImage (2)下载后打开 GPUImage.xcodeproj  工程,选择真机运行该工 ...

  5. Redis架构之防雪崩设计:网站不宕机背后的兵法

    互联网系统中不可避免要大量用到缓存,在缓存的使用过程中,架构师需要注意哪些问题?本文以 Redis 为例,详细探讨了最关键的 3 个问题. 一.缓存穿透预防及优化 缓存穿透是指查询一个根本不存在的数据 ...

  6. CSS快速入门-定位布局(九宫格)

    实现效果图: 看上去是不是很屌的样子?其实实现起来主要就是用到了一个float,不难. 实现步骤:1.新建一个大div,300*30002.里面放5个小div,100*1003.将div定位

  7. 如何用Fiddle工具实现手机抓包

    Fiddler官方下载地址:http://fiddler2.com/ 在做手机或移动端APP的接口测试时,我们可以使用fiddler对APP进行抓包确认,抓取对应的网络交互信息.在抓取的信息中可以看到 ...

  8. java项目部署之后,Jar包中配置文件修改

    Java项目发布时,配置文件不像.net项目一样与工程路径保持一致,而是直接包含在了jar包中,此时要修改就没那么方便了,我们可以将配置文件从jar包抽离出来,修改完之后再写入Jar包即可, 也没那么 ...

  9. 如何让mysql按照两个或多个字段排序

    我准备设计一个供求信息的表格,里边包含序号(id)(自动增量),发布日期(time),上次更新(last_time).因为考虑到避免有人不停的重复发布信息来占据前列位置所以设置了last_time这个 ...

  10. Unity消息简易框架 Advanced C# messenger

    Unity消息简易框架 Advanced C# messenger Unity C# 消息机制  [转载 雨凇MOMO博客] https://www.xuanyusong.com/archives/2 ...