Visual Basic提供列表框控件用于从多个选项中选择一个或多个选项。
1.属性
1)Cloumns:制定列表框中列的数目。列表框中的项目可以单列垂直显示,也可以水平单行或多列列表显示。取值:0-垂直单列列表;1-水平单行列表;大于1-水平多列列表。
2)Enabled:用于设定是否对事件产生响应,取值:True-可用;False-不可用,在执行程序时,该对象用灰色显示,并且不响应任何事件。
3)Font:设置字体。
4)ForeColor:设置前景颜色。
5)List:返回或设置控件列表中的项目。列表是一个字符串数组,数组中的每个元素都是一个列表项目。对ListBox和ComboBox控件,在设计时可以通过属性窗口得到。
格式:
index为列表中具体某个项目的编号,也就是索引。
6)ListCount:返回列表框中项目的数目。该属性是一个只读属性,不能在属性窗口中设置,只能在程序运行时访问它。
7)ListIndex:该属性不能在属性窗口中设置,一般在程序运行中设置或返回列表框控件中当前选中项目的索引,即在项目中的编号。编号从0开始。如果用户没有选定任何项目,则该值为−1。
8)MultiSelect:是否允许多项选择。取值:1-不允许多项选择;2-简单多项选择,即用鼠标单击操作;3-扩充多项选择,即用Shift键和Ctrl键配合操作。
9)Selected:返回或设置ListBox控件中某项的选择状态。
格式:
index为控件中项的索引号。
Boolean为一个用来指定项是否被选中的布尔表达式。如果该值为True,则该项目被选中;如果为False,则该项目未被选中。
此属性对于复选是非常重要的,可以快速检查在列表中哪些项已被选中,也可以通过代码设置该属性,以选中或取消选中列表中的一些项。
10)Sorted:设置是否以字母顺序排列项目。取值:True或False。
11)Style:获得或设置一个值,决定是否将复选框显示在ListBox控件中。取值:0-Standard,标准模式;1-Checkbox,复选框模式。
12)Text:设置用户选定项的内容。
2.事件
1)Click:当单击列表框时发生。
2)DblClick:当双击列表框时发生。
3.方法
1)AddItem:用于将项目添加到ListBox控件中。
格式:(www.xing528.com)
item:必选,字符串表达式,指定添加到该对象中的项目。
index:可选,整数,指定新项目在该列表框中的位置。对于ListBox控件的首项,index为0。如果省略,则新项目采用追加方式,即添加到列表框的最后。
2)Clear:用于清除ListBox控件中所有的项目。
3)RemoveItem:从ListBox控件中删除一项。
格式:
index:必选,整数,它表示要删除的项在列表框中的位置。对于ListBox控件中的首项,index为0。
【例6-5】如图6-6所示,功能如下:
图6-6 利用列表框进行课程选择
1)“添加”按钮,将左边选定的项目移动到右边列表框中。
2)“全部添加”按钮,将左边所有项目移动到右边列表框中。
3)“移除”按钮,将右边选定的项目移动到左边列表框中。
4)“全部移除”按钮,将右边所有项目移动到左边列表框中。
向列表框List1中添加项目,有以下两种方法:
1)从属性窗口的List属性中逐一添加,这种方法效率低,不可取。
2)通过代码从Form_Load事件中添加。
完整代码如下。
如果两个列表框的MultiSelect属性修改为2或者3,允许多选,那么应该修改本例中“添加”按钮和“移除”按钮的代码,因为列表框的Text、ListIndex属性只用于单选。这里应使用列表框的Selected属性。“添加”按钮和“移除”按钮的代码修改如下:
这里在判断列表框中的项目时,采用了倒序的方法,也就是从后向前判断。如果有选定的,则添加,然后从列表框中移除。那么,为什么不按正序判断呢?例如:
原因是这样的:假设选择了两个项目,第一项的Index值为0,当把第一项移走后,第二项就变成了第一项,相应的Index值也变为0。可是这时i值为1,判断的其实是第三项了。并且随着i值的增大,列表框中的项目在逐渐减少,导致当i值增大到某个值时,该项目已经不存在了,系统会报错,如图6-7所示。
图6-7 列表框引用无效
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。