包括保存和加载

//查找业务类型
DataTable dtyewu = sb.SelectSyscode(0, true);

if (dtyewu.Rows.Count > 0)
{

flagcbb = false;
clb_yewu.DataSource = dtyewu;
clb_yewu.DisplayMember = "name";
clb_yewu.ValueMember = "id";
DataRowView dr = clb_yewu.Items[0] as DataRowView;
dtyewuleixingbind(dr["id"].ToString(), true);

flagcbb = true;

}

biz = rc.Bizid.Split(';');
pit = rc.Pid.Split(';');
selectcbb();
loadbing();

private void selectcbb()
{
int m = 0;
for (int j = 0; j < clb_yewu.Items.Count; j++)
{
DataRowView dr = clb_yewu.Items[j] as DataRowView;

for (int i = 0; i < biz.Length; i++)
{
if (dr["id"].ToString() == biz[i])
{
clb_yewu.SetItemChecked(j, true);
break;
}
}

}
}

/// <summary>
/// 所有平台信息
/// </summary>
private void selectPingtai()
{
string m;
string[] pt;
DataTable dtapt = sb.SelectAllPingTai();

dtallpt.Columns.Add("id", typeof(Int32));
dtallpt.Columns.Add("cd", typeof(string));
dtallpt.Columns.Add("name", typeof(string));
for (int i = 0; i < dtapt.Rows.Count; i++)
{

m = dtapt.Rows[i][0].ToString();
pt = m.Split(';');
foreach (string ptf in pt)
{
DataRow dr = dtallpt.NewRow();
dr["id"] = dtapt.Rows[i][1].ToString();
dr["cd"] = ptf;
dr["name"] = dtapt.Rows[i][2].ToString();
dtallpt.Rows.Add(dr);
}
}
}

 private void clb_yewu_SelectedIndexChanged(object sender, EventArgs e)
{
if (flagcbb)
{
string cdd = "";
int m = clb_yewu.SelectedIndex;
if (clb_yewu.CheckedItems.IndexOf(clb_yewu.Items[m]) >= 0)
dtyewuleixingbind(clb_yewu.SelectedValue.ToString(), true);
if (clb_yewu.CheckedItems.IndexOf(clb_yewu.Items[m]) <= 0)
{
dtyewuleixingbind(clb_yewu.SelectedValue.ToString(), false);
}
}
}
private void clb_SelectedIndexChanged(object sender, EventArgs e)
{
int m = ((CheckedListBox)sender).SelectedIndex;
if (((CheckedListBox)sender).CheckedItems.IndexOf(((CheckedListBox)sender).Items[m]) >= 0)
{
for (int j = 0; j < clb_yewu.Items.Count; j++)
{ DataRowView dr = clb_yewu.Items[j] as DataRowView;
if (dr["id"].ToString() == ((CheckedListBox)sender).Name)
{
clb_yewu.SetItemChecked(j, true);
break;
}
} } }
/// <summary>
/// 筛选平台
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
private DataTable selectdypt(string id)
{
DataRow[] drArr = dtallpt.Select("cd ='" + id + "'");
DataTable dtNew = dtallpt.Clone();
for (int i = 0; i < drArr.Length; i++)
{
dtNew.ImportRow(drArr[i]); }
return dtNew;
}
/// <summary>
/// 绑定平台
/// </summary>
/// <param name="id"></param>
private void dtyewuleixingbind(string id, bool select) //xu
{
//DataTable dtpingtai = sb.SelectPingtai(cdd);
DataTable dtpingtai = selectdypt(id);
bool flag = false;
foreach (Control con in panel2.Controls)
{
if (con.Name == id)
{
con.Visible = true;
flag = true;
if (!select)
{
for (int j = 0; j < ((CheckedListBox)con).Items.Count; j++)
((CheckedListBox)con).SetItemChecked(j, false);
}
}
else
{
con.Visible = false;
} }
if (!flag)
{
CheckedListBox clb_yewu = new CheckedListBox();
clb_yewu.Name = id;
clb_yewu.Visible = true;
if (dtpingtai.Rows.Count > 0)
{
clb_yewu.DataSource = dtpingtai;
clb_yewu.DisplayMember = "name";
clb_yewu.ValueMember = "id";
clb_yewu.SelectedIndexChanged += new EventHandler(clb_SelectedIndexChanged);
}
Size ss = new Size(200, 150);
clb_yewu.Size = ss;
clb_yewu.CheckOnClick = true;
panel2.Controls.Add(clb_yewu); } } #region 修改个人信息平台加载
/// <summary>
/// 平台数据加载
/// </summary>
private void loadbing()
{
if (uid > 0)
{
for (int z = 0; z < biz.Length; z++)
{
DataTable dtpingtai = selectdypt(biz[z]);
CheckedListBox clb_yewu = new CheckedListBox();
clb_yewu.Name = biz[z];
clb_yewu.Visible = true;
if (dtpingtai.Rows.Count > 0)
{
clb_yewu.DataSource = dtpingtai;
clb_yewu.DisplayMember = "name";
clb_yewu.ValueMember = "id";
} Size ss = new Size(200, 150);
clb_yewu.Size = ss;
panel2.Controls.Add(clb_yewu); }
ptbinding();
}
}
/// <summary>
/// 选中对应数据库项
/// </summary>
private void ptbinding()
{
int i = 0; foreach (Control c in panel2.Controls)
{
i = 0;
for (int j = 0; j < ((CheckedListBox)c).Items.Count; j++)
{
DataRowView dr = ((CheckedListBox)c).Items[j] as DataRowView;
if (pit != null)
foreach (string pt in pit)
{
string[] p = pt.Split('-');
if (dr["cd"].ToString() == p[0])
if (dr["id"].ToString() == p[1])
{ ((CheckedListBox)c).SetItemChecked(i, true);
break;
} }
i++; }
}
}

  

CheckedListBox与CheckedListBox联动的更多相关文章

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

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

  2. C# CheckedListBox控件的使用方法

    1. 加入项 checkedListBox1.Items.Add("蓝色"); checkedListBox1.Items.Add("红色"); checked ...

  3. checkedListBox的使用

    . 添加项 checkedListBox1.Items.Add("蓝色"); checkedListBox1.Items.Add("红色"); checkedL ...

  4. CHECKEDLISTBOX用法总结

    C# CHECKEDLISTBOX用法总结   一般认为:foreach (object obj in checkedListBox1.SelectedItems)即可遍历选中的值. 其实这里遍历的只 ...

  5. CheckedListBox与下拉框联动代码

    private void yewubind(string id) { //给业务类型下拉框绑定业务类型数据 DataTable dtyewu = sb.SelectLast(id, 0); bool ...

  6. Winform中Checkbox与其他集合列表类型之间进行关联

    本文提供了Checkbox与CheckedListBox.DataGridViewCheckBoxColumn等的联动关系 1.CheckboxAssociateFactroy.Create创建联动关 ...

  7. 分享两种实现Winform程序的多语言支持的解决方案

    因公司业务需要,需要将原有的ERP系统加上支持繁体语言,但不能改变原有的编码方式,即:普通程序员感受不到编码有什么不同.经过我与几个同事的多番沟通,确定了以下两种方案: 方案一:在窗体基类中每次加载并 ...

  8. Winform中checklistbox控件的常用方法

    Winform中checklistbox控件的常用方法最近用到checklistbox控件,在使用其过程中,收集了其相关的代码段1.添加项checkedListBox1.Items.Add(" ...

  9. C# checkboxlist的使用

    最近做项目,需要用到checklistbox这一控件,由于对这一控件并不是很熟悉,导致在此浪费了一点时间. http://www.cnblogs.com/hongfei/archive/2012/12 ...

随机推荐

  1. SQL索引详解

    转自:http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可 ...

  2. IDispatch接口介绍

    1.         C程序调用时,调用者必须预先知道接口规范(如,参数类型.参数字节长度.参数顺序等).由于不同语言这些规范有所不同,COM未解决不同语言之间调用,提供了IDispatch接口. 2 ...

  3. [Effective C++ --007]为多态基类声明virtual析构函数

    引言: 我们都知道类的一个很明显的特性是多态,比如我们声明一个水果的基类: class Fruit { public: Fruit() {}; ~Fruit(){}; } 那么我们根据这个Fruit基 ...

  4. iOS-制作Framework

    步骤 打开Xcode,创建新工程.手下留情,请先看图! 在TARGETS下选中工程,在Build Settings下更改几个参数. 更改参数 在Architectures下增加armv7s,并选中.将 ...

  5. C# 之 Math取整

    主要用到 System 命名空间下的一个数据类 Math ,调用他的方法. C#取整函数使用详解: 1.Math.Round是"就近舍入",当要舍入的是5时与"四舍五入& ...

  6. css实现“固定表头带滚动条”的table

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. 关于新feature对应的增加一个新的测试单子(QA)和文档单子(Doucmentation)的步骤

    一,增加一个new feature的文档单子. 1.new feature 增加对应的文档单子(公司有一个组是专门写产品说明的)所以增加一个新的功能就要有这个新的功能对应的一个文档(Documenta ...

  8. 最小生成树------Prim算法

    定义:设G=(V,E)是一个无向连通图.如果G的生成子图T=(V,E’)是一棵树,则称T是G的一棵生成树(Spanning Tree). 应用生成树可以得到关于一个电网的一组独立的回路方程.第一步是要 ...

  9. 【转】Emmagee app性能测试工具使用教程

    简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控 ...

  10. 【linux操作命令】vim

    高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器x q     退出记录模式 @x     播放记录在x寄存器中的 ...