阅读本文你可以获得:
了解CheckedListBox控件的属性及方法
掌握CheckedListBox控件被选择后的移除和添加方法
学习CheckedListBox控件在移除和添加时候的注意事项
学习CheckedListBox控件在移除和添加时候的多种解决方案
更多List控件推荐!
简介
可选列表框控件CheckedListBox类似于ListBox和Checkbox控件的综合体,允许用户在ListBox内有选择的挑选具体内容。
CheckedListBox控件的属性及方法
CheckedListBox控件主要的属性和事件如下表所示:
属性 说明
Items 描述控件对象中的所有项。
MutiColumn 决定是否可以以多列的形式显示各项。在控件对象的指定高度内无法完全显示所有项时可以分为多列,这种情况下若MutiColumn属性值为false,则会在控件对象内出现滚动条。
ColumnWidth 当控件对象支持多列时,指定各列所占的宽度
CheckOnClick 决定是否在第一次单击某复选框时即改变其状态
SelectionMode 指示复选框列表控件的可选择性。该属性只有两个可用的值None和One,其中None值表示复选框列表中的所有选项都处于不可选状态;One值则表示复选框列表中的所有选项均可选。
Sorted 表示控件对象中的各项是否按字母的顺序排序显示
CheckedItems 表示控件对象中选中项的集合,该属性是只读的
CheckedIndices 表示控件对象中选中索引的集合
事件与方法 说明
SetItemChecked 设置列表中的某个复选框的选中状态。
SetSelected 设置列表中的某个复选框的待选状态。
CheckedListBox控件实践操作
1. 案例学习:CheckedListBox 控件的设计开发
(1)从工具箱之中拖放三个CheckedListBox控件和四个Button控件,如下图所示进行排列。当点击左右移动的符号按钮时候,左右两侧的数据信息将按照客户意图进行移动,而移动信息将显示在下面的CheckedListBox控件中。
CheckedListBox控件运行效果图
(2)具体功能的实现见下面的编码部分:
/// <summary>
/// 初始化事件在左侧的checkedListBox加载星期信息
/// </summary>
private void Form4_Load(object sender, EventArgs e)
{
checkedListBox1.Items.Add("星期一");
checkedListBox1.Items.Add("星期二");
checkedListBox1.Items.Add("星期三");
checkedListBox1.Items.Add("星期四");
checkedListBox1.Items.Add("星期五");
checkedListBox1.Items.Add("星期六");
checkedListBox1.Items.Add("星期日");
}
/// <summary>
/// 移至右侧部分项
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
foreach (object o in checkedListBox1.CheckedItems)
{
checkedListBox2.Items.Add(o);
}
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if (checkedListBox1.CheckedItems.Contains(checkedListBox1.Items[i]))
{
checkedListBox3.Items.Add(checkedListBox1.Items[i].ToString() + "被移至右侧");
checkedListBox1.Items.Remove(checkedListBox1.Items[i]);
}
}
}
/// <summary>
/// 左侧全部移到右侧
/// </summary>
private void button2_Click(object sender, EventArgs e)
{
foreach (object o in checkedListBox1.Items)
{
checkedListBox2.Items.Add(o);
}
checkedListBox1.Items.Clear();
checkedListBox3.Items.Add("左侧全部移到右侧");
}
/// <summary>
/// 右侧移到左侧
/// </summary>
private void button3_Click(object sender, EventArgs e)
{
foreach (object o in checkedListBox2.CheckedItems)
{
checkedListBox1.Items.Add(o);
}
for (int i = 0; i < checkedListBox2.Items.Count; i++)
{
if (checkedListBox2.CheckedItems.Contains(checkedListBox2.Items[i]))
{
checkedListBox3.Items.Add(checkedListBox1.Items[i].ToString() + "被移至左侧");
checkedListBox2.Items.Remove(checkedListBox2.Items[i]);
}
}
}
/// <summary>
/// 右侧全部移至左侧
/// </summary>
private void button4_Click(object sender, EventArgs e)
{
foreach (object o in checkedListBox2.Items)
{
checkedListBox1.Items.Add(o);
}
checkedListBox2.Items.Clear();
checkedListBox3.Items.Add("右侧全部移到左侧");
}
更多CheckedListBox控件请访问: