• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
June's New World
知识和经验都是一点点积累的!现在努力也不晚,June加油!
博客园    首页    新随笔    联系   管理    订阅  订阅
怪异的CheckedListBox数据绑定
今天用到了CheckedListBox,就见到总结一下常用的知识。数据绑定 CheckedListBox应该是由ListBox扩展而来的,但在使用的时候,可能会发现——它不支持DataSource属性,不能像ListBox那样指定其数据源为一个DataTable。 事实上,CheckedListBox像ListBox一样有DataSource属性,DisplayMember和ValueMemeber属性也都是有的,只是IntelliSense不能将其智能感知出来。 如何获取checkedListBox1选中项的DisplayMember和ValueMember

今天用到了CheckedListBox,就见到总结一下常用的知识。

1、添加项:Items.Add

checkedListBox1.Items.Add("June");
checkedListBox1.Items.Add("Jun");

2、判断第i项是否选中GetItemChecked(index)

checkedListBox1.GetItemChecked(i)

3、设置第i项是否选中SetItemChecked(index,bool)或者SetItemCheckState(index,CheckState)

checkedListBox1.SetItemChecked(index, true);
checkedListBox1.SetItemCheckState(index, CheckState.Unchecked);

4、设置全选

for (int i = 0; i < listBoxLED.Items.Count; i++)
{
checkedListBox1.SetItemCheckState(i, CheckState.Checked);
//checkedListBox1.SetItemChecked(i, true);
}

5、数据绑定

CheckedListBox应该是由ListBox扩展而来的,但在使用的时候,可能会发现——它不支持DataSource属性,不能像ListBox那样指定其数据源为一个DataTable。

事实上,CheckedListBox像ListBox一样有DataSource属性,DisplayMember和ValueMemeber属性也都是有的,只是IntelliSense不能将其智能感知出来。

因此,我们可以通过代码将CheckedListBox绑定。

DataSet ds=bll.GetAllStudent();
checkedListBox1.DataSource = ds.Table[0];
checkedListBox1.ValueMember = "student_id";
checkedListBox1.DisplayMember = "student_name";

6、如何获取checkedListBox1选中项的DisplayMember和ValueMember

方法1:

for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{
DataRowView dv = ((DataRowView)checkedListBox1.CheckedItems[i]);
string id = dv["student_id"].ToString();
string name = dv["student_name"].ToString();
}

方法2:

获取Text:获取Text还是很简单,就在CheckedListBox上获取就行.获取选中选中项的Text

string name = checkedListBox1.GetItemText(checkedListBox1.Items[i]);

获取Value的值:这里就用了一个技巧,就是通过绑定到CheckedListBox的DataSet来获取。(在网上看到说是因为在CheckedListBox中获取到的索引Index是与DataSet中相应的值是一样的。知道原因的帮忙解释一下)

string name = ds.Tables[0].Rows[i]["student_name"].ToString();//此处i为CheckedListBox选中项的索引

 

如果大家觉得CheckedListBox哪些知识点比较常用,欢迎补充。

 

posted on 2011-12-14 19:08  冬雨在路上  阅读(8044)  评论(5)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3