全选按钮的使用。winfrom程序中,对全选按钮的理解,欢迎拍砖!

最近在做公司项目时,用到了一些单选多选的处理情况。特编辑此文,欢迎批评指正。(有图有真相)

winfrom程序。

首先,需要绑定某些用户,该用于由当前登陆用户获取。

private void BindUser()
        {
            DataTable dt = new WebService.Manage.Manage().getUsersByParentID(Main.tbl_user.ID);// 通过webservice访问数据库,根据当前登陆用户获取其子用户。
            CheckBox user = new CheckBox();
            user.Location = new Point(30, 0);
            user.Text = Main.tbl_user.U_UserName;
            user.Tag = Main.tbl_user.ID;
            panelUser.Controls.Add(user);
            for (int i = 1; i < dt.Rows.Count; i++)//循环遍历  子用户。
            {
                CheckBox userr = new CheckBox();
                userr.Location = new Point(30, i * 20);
                userr.Text = dt.Rows[i - 1]["U_UserName"].ToString();
                userr.Tag = dt.Rows[i - 1]["ID"].ToString();
                panelUser.Controls.Add(userr);//特定的 panel 中绑定 用户名
            }
        }

下图为绑定之后的效果:

   /// <summary>
        /// 选择“全选”,指定的panle中的 checkbox全部选中
        /// </summary>
        /// <param name="checkAllCheck">全选按钮</param>
        /// <param name="panel">其他checkbox容器</param>
        private void checkAllCheck(CheckBox checkAllCheck,Panel panel)
        {
            if (checkAllCheck.Checked)
            {
                foreach (CheckBox check in panel.Controls)
                {
                    check.Checked = true;

        check.Enabled = false;

       checkAllCheck.Enabled = true;// 控制 不可更改
                }
            }
            else
            {
                foreach (CheckBox check in panel.Controls)
                {
                    check.Enabled = true;
                }
            }
        }

此图为绑定之后。单机全选按钮后的效果。此事,各个用户不可再取消选择,除非,取消全选。

原文地址:https://www.cnblogs.com/Lin267307031/p/2671115.html