1、常用调用方法
  public partial class UCRights : UserControl
{
private readonly int LOCATIONY;
private DataTable MENU = new DataTable();
private BLL.User oUser = new HRPOWER.BLL.User(); public UCRights()
{
InitializeComponent();
LOCATIONY = panRightMenu_Top.Location.Y;
} private void UCRights_Load(object sender, EventArgs e)
{
tebDesc.Enabled = false;
tebDesc.BackColor = Color.White;
tebPWD.PasswordChar = '*';
tebPWD2.PasswordChar = '*'; MENU.Columns.Add("MENUID");
MENU.Columns.Add("USERID");
MENU.Columns.Add("COMPANYID");
MENU.AcceptChanges(); BLL.User.UploadValues2CobUID(cobID); SetTabSort(); LoadCompanyComponent();
} /// <summary>
/// 加载公司组件
/// </summary>
private void LoadCompanyComponent()
{
HRPOWER.BLL.Company _ocompany = new HRPOWER.BLL.Company();
DataTable _dt = _ocompany.GetCompanyInfo(); int LOCATIONX = ; if (_dt.Rows.Count > )
{
for (int i = ; i < _dt.Rows.Count; i++)
{
Parts.UCRightCompany _ucRC = new HRPOWER.WIN.UC.Parts.UCRightCompany();
_ucRC.COMPANYNAME = _dt.Rows[i]["NAME_SHORT"].ToString();
_ucRC.COMPANYID = _dt.Rows[i]["ID"].ToString();
Control c = (Control)_ucRC;
c.Location = new Point(LOCATIONX, LOCATIONY);
c.Name = "UCRightCompany" + i.ToString();
this.Controls.Add(c);
LOCATIONX += ;
}
}
if (LOCATIONX > this.Width)
{
this.Width = LOCATIONX + _dt.Rows.Count;
}
} /// <summary>
/// 获取用户对应的权限
/// </summary>
/// <param name="cContainer">控件容器</param>
private void SearchControls(System.Windows.Forms.Control cContainer)
{
foreach (System.Windows.Forms.Control c in cContainer.Controls)
{
if (c is CheckBox)
{
CheckBox _chb = (CheckBox)c;
if (_chb.Checked)
{
string _sCompID = String.Empty;
Control[] ctlList = _chb.Parent.Parent.Controls.Find("chbCompany", true); if (ctlList.Length > )
{
CheckBox chb = (CheckBox)ctlList.GetValue();
_sCompID = chb.Text; if (MENU.Select("MENUID=" + _chb.Tag.ToString()).Length > )
{
DataRow dr = MENU.Select("MENUID=" + _chb.Tag.ToString())[];
DataRow ddr = MENU.NewRow();
ddr["USERID"] = dr["USERID"];
ddr["MENUID"] = dr["MENUID"];
ddr["COMPANYID"] = dr["COMPANYID"].ToString().Contains(_sCompID) ? dr["COMPANYID"].ToString() : dr["COMPANYID"].ToString() + _sCompID + ",";
MENU.Rows.Remove(dr);
MENU.Rows.Add(ddr); }
else
{
DataRow ddr = MENU.NewRow();
ddr["USERID"] = cobID.Text;
ddr["MENUID"] = _chb.Tag.ToString();
ddr["COMPANYID"] = _sCompID + ",";
MENU.Rows.Add(ddr);
}
MENU.AcceptChanges();
}
}
}
if (c.HasChildren) SearchControls(c);
}
} private void butSave_Click(object sender, EventArgs e)
{
String _sResult = String.Empty;
if (!CheckInfoIsFull())
{
return;
} SearchControls(this); _sResult = oUser.UpdateRoleInfoByUser(cobID.Text, tebName.Text, tebPWD.Text, MENU); if (_sResult.ToLower() == "true")
{
BLL.BaseClass.DialogMessage("您好,用户权限设置成功!", "提示");
tebName.Text = null;
cobID.Text = null;
tebPWD.Text = tebPWD2.Text = null;
SetCheckBoxIsUnchecked(this);
}
else
{
BLL.BaseClass.DialogMessage("抱歉,用户权限设置不成功,请确认信息无误后再设置", "提示");
BLL.BaseClass.LogErrorLog(_sResult);
tebName.Focus();
} MENU.Clear();
} /// <summary>
/// 检测必选条件是否符合要求,true为是,false为否
/// </summary>
/// <returns></returns>
private Boolean CheckInfoIsFull()
{
Boolean _bRtn = true; if (String.IsNullOrEmpty(tebName.Text.Trim()))
{
BLL.BaseClass.DialogMessage(String.Format("您好,{0}不能为空", labName.Text.Replace(" ", String.Empty)), "提示");
tebName.Focus();
_bRtn = false;
}
if (tebName.Text.Trim().Length > )
{
BLL.BaseClass.DialogMessage(String.Format("抱歉,{0}长度不能超过50个字符", labName.Text.Replace(" ", String.Empty)), "提示");
tebName.Focus();
_bRtn = false;
}
if (String.IsNullOrEmpty(cobID.Text.Trim()))
{
BLL.BaseClass.DialogMessage(String.Format("您好,{0}不能为空", labID.Text.Replace(" ", String.Empty)), "提示");
cobID.Focus();
_bRtn = false;
}
if (cobID.Text.Trim().Length > || !BLL.BaseClass.IsNumberOrChar(cobID.Text.Trim()))
{
BLL.BaseClass.DialogMessage(String.Format("抱歉,{0}长度不能超过50个字符同时只能为数字或字母", labID.Text.Replace(" ", String.Empty)), "提示");
cobID.Focus();
_bRtn = false;
}
if (String.IsNullOrEmpty(tebPWD.Text))
{
BLL.BaseClass.DialogMessage(String.Format("您好,{0}不能为空", labPWD.Text.Replace(" ", String.Empty)), "提示");
tebPWD.Focus();
_bRtn = false;
}
if (String.IsNullOrEmpty(tebPWD2.Text))
{
BLL.BaseClass.DialogMessage(String.Format("您好,{0}不能为空", labPWD2.Text.Replace(" ", String.Empty)), "提示");
tebPWD2.Focus();
_bRtn = false;
}
if (tebPWD.Text.Length> || tebPWD2.Text.Length>)
{
BLL.BaseClass.DialogMessage("抱歉,密码长度不能超过50", "提示");
tebPWD.Focus();
_bRtn = false;
}
if (String.Compare(tebPWD.Text, tebPWD2.Text, false) != || !BLL.BaseClass.IsNumberOrChar(tebPWD.Text.Trim()))
{
BLL.BaseClass.DialogMessage(String.Format("抱歉,{0}与{1}不相同或者密码不为数字、字母组成",
labPWD.Text.Replace(" ", String.Empty),
labPWD2.Text.Replace(" ", String.Empty)), "提示");
tebPWD.Focus();
_bRtn = false;
} return _bRtn;
} /// <summary>
/// 设置WINDOWS TAB键顺序
/// </summary>
private void SetTabSort()
{
cobID.TabIndex = ;
tebName.TabIndex = ;
tebPWD.TabIndex = ;
tebPWD2.TabIndex = ;
butSave.TabIndex = ;
cobID.Focus();
} private void cobID_SelectedIndexChanged(object sender, EventArgs e)
{
SetCheckBoxIsUnchecked(this);
DataTable _dtMenu = oUser.GetUserMenuInfoByUID(cobID.Text);
if (_dtMenu.Rows.Count > )
{
tebName.Text = _dtMenu.Rows[]["Comment"].ToString();
tebPWD2.Text = tebPWD.Text = BLL.BaseClass.Decrypt(_dtMenu.Rows[]["Password"].ToString());
foreach (DataRow dr in _dtMenu.Rows)
{
SetValueToCheckBox(this, dr);
}
}
else
{
tebName.Text = tebPWD.Text = tebPWD2.Text = null;
}
} /// <summary>
/// 根据查询结果,给用户设置对应的值
/// </summary>
/// <param name="cContainer">控件容器</param>
/// <param name="dr">DataRow</param>
private void SetValueToCheckBox(Control cContainer, DataRow dr)
{
foreach (Control c in cContainer.Controls)
{
if (c is CheckBox)
{
CheckBox chb = (CheckBox)c;
string tmp = dr["MENU_ID"].ToString();
string tmp1 = chb.Tag.ToString();
if (tmp1 == tmp && !chb.Checked)
{
//查找公司CheckBox控件
Control[] cList = chb.Parent.Parent.Controls.Find("chbCompany", true);
if (cList.Length > )
{
if (dr["COMPANY_ID"].ToString().Contains(((CheckBox)cList.GetValue()).Text))
{
chb.Checked = true;
}
}
}
} if (c.HasChildren)
{
SetValueToCheckBox(c, dr);
}
}
} /// <summary>
/// 设置CheckBox控件为未选状态
/// </summary>
/// <param name="cContainer">控件容器</param>
private void SetCheckBoxIsUnchecked(Control cContainer)
{
foreach (Control c in cContainer.Controls)
{
if (c is CheckBox)
{
((CheckBox)c).Checked = false;
} //处理隐藏的Panel不被处理
if (c.HasChildren && c.Name!="panCompany0Hide")
SetCheckBoxIsUnchecked(c);
}
} private void cobID_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char))
{
cobID_SelectedIndexChanged(null, null);
}
} }

2、获取指定窗体内,所以check值集合  

         /// <summary>
/// 加载公司组件
/// </summary>
private void LoadCompanyComponent()
{
HRPOWER.BLL.Company _ocompany = new HRPOWER.BLL.Company();
DataTable _dt = _ocompany.GetCompanyInfo(); int LOCATIONX = ; if (_dt.Rows.Count > )
{
for (int i = ; i < _dt.Rows.Count; i++)
{
Parts.UCRightCompany _ucRC = new HRPOWER.WIN.UC.Parts.UCRightCompany();
_ucRC.COMPANYNAME = _dt.Rows[i]["NAME_SHORT"].ToString();
_ucRC.COMPANYID = _dt.Rows[i]["ID"].ToString();
Control c = (Control)_ucRC;
c.Location = new Point(LOCATIONX, LOCATIONY);
c.Name = "UCRightCompany" + i.ToString();
this.Controls.Add(c);
LOCATIONX += ;
}
}
if (LOCATIONX > this.Width)
{
this.Width = LOCATIONX + _dt.Rows.Count;
}
} /// <summary>
/// 获取用户对应的权限
/// </summary>
/// <param name="cContainer">控件容器</param>
private void SearchControls(System.Windows.Forms.Control cContainer)
{
foreach (System.Windows.Forms.Control c in cContainer.Controls)
{
if (c is CheckBox)
{
CheckBox _chb = (CheckBox)c;
if (_chb.Checked)
{
string _sCompID = String.Empty;
Control[] ctlList = _chb.Parent.Parent.Controls.Find("chbCompany", true); if (ctlList.Length > )
{
CheckBox chb = (CheckBox)ctlList.GetValue();
_sCompID = chb.Text; if (MENU.Select("MENUID=" + _chb.Tag.ToString()).Length > )
{
DataRow dr = MENU.Select("MENUID=" + _chb.Tag.ToString())[];
DataRow ddr = MENU.NewRow();
ddr["USERID"] = dr["USERID"];
ddr["MENUID"] = dr["MENUID"];
ddr["COMPANYID"] = dr["COMPANYID"].ToString().Contains(_sCompID) ? dr["COMPANYID"].ToString() : dr["COMPANYID"].ToString() + _sCompID + ",";
MENU.Rows.Remove(dr);
MENU.Rows.Add(ddr); }
else
{
DataRow ddr = MENU.NewRow();
ddr["USERID"] = cobID.Text;
ddr["MENUID"] = _chb.Tag.ToString();
ddr["COMPANYID"] = _sCompID + ",";
MENU.Rows.Add(ddr);
}
MENU.AcceptChanges();
}
}
}
if (c.HasChildren) SearchControls(c);
}
}

WinForm 遍历用户控件里CheckBox的更多相关文章

  1. winfrom获取用户控件里的控件对象

    如何获取用户控件里的控件对象呢,其实思路也是很简单的, 比如有一个panel 用户控件 里面有许多的其他控件. 那么要找出一个Label控件怎么找呢,好的.现在我们就开始 首先,一个foreach循环 ...

  2. Winform开发常用控件之Checkbox和CheckedListBox

    Winform的开发基本都是基于控件事件的,也就是事件驱动型的. 多选框的放置和值的获取有很多种,这里介绍几个简单常用的方法 1.直接放置Checkbox,并获取Checkbox的值 上图 做法也非常 ...

  3. (c#)WinForm遍历所有控件

    遍历WinForm中的所有控件,只执行一次以下语句是不行的 foreach (Control ctl in this.Controls) { } 这样只能遍历到第一层控件,子控件是遍历不到的,要想遍历 ...

  4. C#winform窗体用户控件自定义事件

    C#许多事情都和事件有关系,大部分的事情我们可以通过C#自己的事件来完成,但如果我们自己新建了一个自定义控件,我们该如何定义自己想要的事件呢?下面我就来为大家粗略的讲解一番. 假设我们自定义了一个控件 ...

  5. 在SharePoint 2010 母版页里添加自定义用户控件

    在SharePoint 2010 母版页里添加自定义用户控件(译) 使用自定义用户控件的好处: 1.容易部署:2.易于控制显示或隐藏. (在使用的过程中)可能要面对的问题是:如何在用户控件里使用Sha ...

  6. (九)ASP.NET自定义用户控件(2)

    http://www.cnblogs.com/SkySoot/archive/2012/09/04/2670678.html 用户控件 在 .NET 里,可以通过两种方式把自己的控件插入到 Web 窗 ...

  7. Asp.net 恢复页面内用户控件内的控件ClientID

    众所周知在Asp.net中如果一个页面添加了一个用户控件(或母版页),那么用户控件内的控件的   ClientID号会被自动添加页面中用户控件的ClientID 即页面中的控件内的控件ClientID ...

  8. ASP.NET的用户控件

    本文介绍如何在ASP.NET中创建用户控件,控件属性的动态修改以及控件的事件出发机制. 简介ASP.NET的服务端控件使得Web开发工作变得更为简单,功能更为强大.我们介绍过如何在ASP.NET页面中 ...

  9. WPF窗口和用户控件事件相互触发

    问题1: WPF项目里有一个窗口和一个用户控件,窗口和用户控件里都有一个Button,点击窗口里的Button如何触发用户控件里Button的Click事件 解答: //窗口代码 public par ...

随机推荐

  1. 精通Web Analytics 2.0 (11) 第九章: 新兴分析—社交,移动和视频

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第九章: 新兴分析-社交,移动和视频 网络在过去几年中发生了不可思议的发展变化:从单向对话到双向对话的转变; 由视频,Ajax和 ...

  2. document.domain

    HTML DOM DOCUMENT 对象 定义和用法 domain 属性可返回下载当前文档的服务器域名. 语法 document.domain 说明 该属性是一个只读的字符串,包含了载入当前文档的 w ...

  3. Asp.net MVC的ViewData与ViewBag以及TemplateData的使用与区别

    ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP.NET MVC3 才有 基于Asp.net 3.5 fram ...

  4. MDK5 STM32编译问题汇总

    MDK5 STM32编译问题汇总 WIN8.KEIL-MDK-5 编译时,出现弹窗"The ARM C/C++ Compiler 已停止工作",关闭弹窗后,编译输出的窗口中出现如下 ...

  5. margin()与offset()的区别

    margin() 简写属性在一个声明中设置所有外边距属性. offset() 方法返回或设置匹配元素相对于文档的偏移(位置).

  6. input file限制上传文件类型

    http://www.cnblogs.com/haocool/p/3431181.html http://www.haorooms.com/post/input_file_leixing http:/ ...

  7. 矢量图绘制工具Svg-edit调整画布的大小

    矢量图绘制工具Svg-edit调整画布的大小 ------------------------------ ------------------------

  8. python3--删除所有空目录,第一个有实际用处的程序

    #目标:删除所有空文件夹 #逐个判断某目录下所有项目 #若该项目是目录就进入该目录,完成上一步,不是下一个项目 #判断完所有后判断当前目录是否是空目录,是就删除 #需要管理员权限,否则很多目录无权限 ...

  9. cross_domain

    要传参数的页面 引用cross_domain.js  这个是另外一个工程(m)的地址 <script type="text/javascript" src="htt ...

  10. .htaccess基本语法和应用 (2012-11-09 16:13:47)转载▼

    htaccess基本语法和应用 (2012-11-09 16:13:47) 转载▼ 标签:  htaccess it 分类: 网络 .htaccess是Apache服务器的一个非常强大的分布式配置文件 ...