vb入门——分组控件:CheckedListBox控件的使用
    vb入门——分组控件:CheckedListBox控件的使用
 
在vb中,CheckBox、CheckedListBox、RadioButton和TrackBar这四个控件的功能都是设置和获取值的,我们称之为设置值的控件。
前面我们了解了CheckBox控件和RadioButton控件的使用,这里我们来看CheckedListBox控件的使用,CheckedListBox控件在工具箱中的图标如图所示:
Windows窗体的CheckedListBox控件,扩展了ListBox控件(vb入门——ListBox控件的使用)。它几乎可以完成列表框控件(ListBox)可以完成的所有任务,并且还可以在列表中的项旁边显示复选的标记。这两种控件的其他差异是:CheckedListBox控件(也称复选列表框)只支持DrawMode.Normal,并且复选列表框只能有一项选定或者没有任何选定,选定的项在窗体上突出显示,与以选中的项区别。
一、常用属性和方法
CheckedListBox控件的属性和方法基本上都可以在ListBox控件中到,可以参看这里:vb入门——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事件的代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If CheckedListBox1.CheckedItems.Count <> 0 Then
Dim i As Integer
Dim s As String = ""
For i = 0 To CheckedListBox1.CheckedItems.Count - 1
s = s & "选中项" & (i + 1).ToString & "=" & CheckedListBox1.CheckedItems.Item(i).ToString & ControlChars.CrLf
Next
MessageBox.Show(s)
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArg
s) Handles Button2.Click
Dim i As Integer
Dim s As String = ""
s = "选中项:" & ControlChars.CrLf
For i = 0 To (CheckedListBox1.Items.Count - 1)
If CheckedListBox1.GetItemChecked(i) = True Then
s = s & "项" & (i + 1).ToString & "=" & CheckedListBox1.Items(i).ToString & ControlChars.CrLf
End If
Next
MessageBox.Show(s)
End Sub
运行测试,把列表框中的第一、第四项选中,如图所示:
htmlradio添加切换事件
现在先点击第一个按钮,弹出的信息如下所示:
指示的项是在选中列表的索引
再单击第二个按钮,弹出的信息如下所示:
很明显,所指示的项索引是整个列表中的索引。