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

   //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. python列表,元组,字典和字符串之间的相互转换

    元组转换成列表 >>> mytuple = (1,2,3) >>> print list(mytuple) [1, 2, 3] 列表转换成元组 >>&g ...

  2. PyQt5利用QPainter绘制各种图形

    这个例子我做了好几天: 1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化 2)网上的PyQt的例子根本运行不了 填了无数个坑,结合二者,终于能完成了一个关于绘图的东西.这个过程也掌握 ...

  3. 【转载】COM 组件设计与应用(十五)——连接点(vc6.0)

    原文:http://vckbase.com/index.php/wv/1256.html 一.前言 上回书介绍了回调接口,在此基础上,我们理解连接点就容易多了. 二.原理 图一.连接点组件原理图.左侧 ...

  4. P3164 [CQOI2014]和谐矩阵

    P3164 [CQOI2014]和谐矩阵 乱写能AC,暴力踩标程(雾 第一眼 诶这题能暴力枚举2333!!! 第二眼 诶这题能高斯消元!那只需要把每个位置的数给设出来就能够列方程了!然后就可以\(O( ...

  5. web测试通用要点大全(Web Application Testing Checklist)

    在测试工作中经常遇到测试同一控件功能的情景,这样几年下来也积累了各种测试功能控件的checklist,过年期间抽空整理分享出来.通过下面的清单,任何测试新手都可以快速写出媲美工作好几年的测试老鸟的测试 ...

  6. Loadrunner 性能指标

    https://wenku.baidu.com/view/bf395a1db7360b4c2e3f64ca.html 希望能记住最好记住吧,这个很重要的. qq,979506750多交流

  7. electron快速开始

    初学electron 接触了两周的electron,感觉还不错,以后pc端基本上可以用electron加壳写pc端应用了,可以用nodejs的模块,也可以用es6.7,还可以直接操作系统文件.基本上可 ...

  8. ssh连接超时自动断掉的解决办法

    最近开始使用阿里云服务器ECS,系统是CENTOS7.4 ,通过SSH连接上自动创建的实例后,几分钟不操作,就自动断开,提示“信号灯时间已到”,非常影响工作. 解决办法: 默认镜像创建的实例,SSH服 ...

  9. 人工智能AI芯片与Maker创意接轨(下)

    继「人工智能AI芯片与Maker创意接轨」的(上)篇中,认识了人工智能.深度学习,以及深度学习技术的应用,以及(中)篇对市面上AI芯片的类型及解决方案现况做了完整剖析后,系列文到了最后一篇,将带领各位 ...

  10. NO--16 vue之父子组件传值

    先创建项目并运行 vue init webpack-simple templatecd templatenpm inpm run dev 一.子组件访问父组件的数据 方式一 :子组件直接访问父组件的数 ...