在CheckBox、CheckedListBox、RadioButton和TrackBar这四个控件的功能都是设置和获取值的,我们称之为设置值的控件。
前面我们了解了CheckBox控件和RadioButton控件的使用,这里我们来看CheckedListBox控件的使用,CheckedListBox控件在工具箱中的图标如图所示:
Windows窗体的CheckedListBox控件,扩展了ListBox控件(vb.net入门——ListBox控件的使用)。它几乎可以完成列表框控件(ListBox)可以完成的所有任务,并且还可以在列表中的项旁边显示复选的标记。这两种控件的其他差异是:CheckedListBox控件(也称复选列表框)只支持DrawMode.Normal,并且复选列表框只能有一项选定或者没有任何选定,选定的项在窗体上突出显示,与以选中的项区别。
一、常用属性和方法
CheckedListBox控件的属性和方法基本上都可以在ListBox控件中找到,可以参看这里:vb.net入门——ListBox控件的使用。值得我们重视的是,CheckedListBox控件的CheckedItems属性,它是CheckedListBox控件中复选框选中的项的集合,我们可以通过检索该属性来获得选中的项。
CheckOnClick 指示是否只要一选择项即切换复选框。默认行为是在首次单击时更改选定内容,然后让用户再次单击以应用选中标记。但在某些情况下,您可能愿意一单击项就选中它。
下面我们就直接以实例来了解和掌握CheckedListBox控件的方法和属性。
二、在CheckedListBox控件中添加、移除项
因为CheckedListBox控件控件的使用和ListBox控件相似,所以我们这里就只针对用编程的方法来对CheckedListBox控件的操作。
1、添加项
添加一个名为“新建文件”的项,且复选框为选中状态
CheckedListBox1.Items.Add("新建文件", True)
添加一个名为“拷贝文件”的项,且复选框为未选中状态
CheckedListBox1.Items.Add("拷贝文件", False)
2、删除项
使用Remove来删除项,或者使用RemoveAt来移除指定索引的项
删除CheckedListBox中的选中的项
CheckedListBox1.Items.Remove(CheckedListBox1.SelectedItem)
删除指定索引的项
CheckedListBox1.Items.RemoveAt(0)
3、删除所有项
CheckedListBox1.Items.Clear()
三、确定 CheckedListBox 控件中已选中的项
当显示CheckedListBox 控件中的数据时,可以循环访问CheckedItems属性中存储的集合,或者使用GetItemChecked 方法一一检查列表确定所选中的项。
GetItemChecked 方法采用项的索引号作为参数,并返回True或者False。SelectedItems 和 SelectedIndices属性并不确定哪些项目已选中,它们只指示哪些项目为突出显示。CheckedItems集合是从0开始的。
示例:
1、在窗体上,放置一个CheckedListBox和两个Button控件,并在CheckedListBox的“字符串编辑器”中添加字面为 a 到 l 的几个项目,如下图所示:
2、两个按钮中的Click事件的代码如下:
Button1:
// Determine if there are any items checked.
if (checkedListBox1.CheckedItems.Count != 0)
{
// If so, loop through all checked items and print results.
string s = "";
for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{
s = s + "Checked Item " + (i + 1).ToString() + " = " + checkedListBox1.CheckedItems[i].ToString() + "\n";
}
MessageBox.Show(s);
}
Button2:
string s = "Checked items:\n";
for (int i = 0; i <= (checkedListBox1.Items.Count - 1); i++)
{
if (checkedListBox1.GetItemChecked(i))
{
s = s + "Item " + (i + 1).ToString() + " = " + checkedListBox1.Items[i].ToString() + "\n";
}
}
MessageBox.Show(s);
运行测试,把列表框中的第一、第四项选中,如图所示:
现在先点击第一个按钮,弹出的信息如下所示:
指示的项是在选中列表的索引
再单击第二个按钮,弹出的信息如下所示:
很明显,所指示的项索引是整个列表中的索引。