動態生成CheckBox(Winform程序)


在做用戶權限設置功能時,需要做一個動態生成權限列表的功能。(筆記、分享)

   //1、清空權限控件組的默認控件
                        panelPermissions.Controls.Clear();
                        _groupBoxList = new List<GroupBox>();
                        //2、遍歷權限組數據,動態生成權限控件組
                        var groupBoxNameTemp = "gBox";
                        var checkBoxNameTemp = "ck";
                        var lastGroupBoxHeight = 0;
                        for (var i = 0; i < permissions.Count; i++)
                        {
                            //創建權限組容器
                            GroupBox gbox = new GroupBox()
                            {
                                Name = groupBoxNameTemp + i,
                                Text = permissions[i].GroupName,
                                Width = 520,
                                Height = (permissions[i].Permissions.Count / 5 + 1) * 42,
                                Location = new Point(12, lastGroupBoxHeight + i * 10)
                            };
                            lastGroupBoxHeight = lastGroupBoxHeight + gbox.Height;
                            //將權限組容器添加到界面上
                            panelPermissions.Controls.Add(gbox);
                            //創建權限組容器中的CheckBox
                            var pRowIndex = 0;
                            var pColIndex = 0;
                            for (var c = 0; 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 / 4;//行號
                                pColIndex = c % 4;//列號
                                checkBox.Location = new Point(8 + pColIndex * 135, 16 + pRowIndex * 32);
                                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;//列號

用來換行的。

)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM