2-11 CheckedListBox 可选列表框控件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
u
本节学习目标:
n
了解CheckedListBox控件的属性及方法
n
掌握CheckedListBox控件被选择后的移除和添加方法
n
学习CheckedListBox控件在移除和添加时候的注意事项
n
学习CheckedListBox控件在移除和添加时候的多种解决方案
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2-11-1 简介
可选列表框控件
CheckedListBox
类似于
ListBox
和
Checkbox
控件的综合体,允许用户在
ListBox
内有选择的挑选具体内容。
2-11-2 CheckedListBox控件的属性及方法
CheckedListBox
控件主要的属性和事件如表
2-11
所示:
属性
|
说明
|
Items
|
描述控件对象中的所有项。
|
MutiColumn
|
决定是否可以以多列的形式显示各项。在控件对象的指定高度内无法完全显示所有项时可以分为多列,这种情况下若MutiColumn属性值为false,则会在控件对象内出现滚动条。
|
ColumnWidth
|
当控件对象支持多列时,指定各列所占的宽度
|
CheckOnClick
|
决定是否在第一次单击某复选框时即改变其状态
|
SelectionMode
|
指示复选框列表控件的可选择性。该属性只有两个可用的值None和One,其中None值表示复选框列表中的所有选项都处于不可选状态;One值则表示复选框列表中的所有选项均可选。
|
Sorted
|
表示控件对象中的各项是否按字母的顺序排序显示
|
CheckedItems
|
表示控件对象中选中项的集合,该属性是只读的
|
CheckedIndices
|
表示控件对象中选中索引的集合
|
事件与方法
|
说明
|
SetItemChecked
|
设置列表中的某个复选框的选中状态。
|
SetSelected
|
设置列表中的某个复选框的待选状态。
|
表2-11 CheckedListBox控件的属性及方法
2-11-3 CheckedListBox控件实践操作
1.<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />案例学习:CheckedListBox 控件的设计开发
(
1
)从工具箱之中拖放三个
CheckedListBox
控件和四个
Button
控件,如图
2-37
所示进行排列。当点击左右移动的符号按钮时候,左右两侧的数据信息将按照客户意图进行移动,而移动信息将显示在下面的
CheckedListBox
控件中。
![](https://i-blog.csdnimg.cn/blog_migrate/ff3a1924cbd47b128ea9ced911778e28.jpeg)
图2-37 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("右侧全部移到左侧");
}
|
转载于:https://blog.51cto.com/qianshao/208670