vb.net入门——分组控件:CheckedListBox控件的使用


在vb.net中,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事件的代码如下:

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.EventArgs) 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

 

运行测试,把列表框中的第一、第四项选中,如图所示:

 

现在先点击第一个按钮,弹出的信息如下所示:

 

指示的项是在选中列表的索引

再单击第二个按钮,弹出的信息如下所示:

 

很明显,所指示的项索引是整个列表中的索引。

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3